Merge upstream quattro (factory-reset hash scrub + hook/state path guards) - #25
Draft
cursor[bot] wants to merge 4 commits into
Draft
cursor[bot] wants to merge 4 commits into
cursor[bot] wants to merge 4 commits into
Conversation
omarchy-hook and omarchy-state set join a name straight into a path. A name with a slash, or a bare . or .., points outside the hooks or state directory. Every caller in the repo passes a fixed label, so this is a footgun guard for future callers, not a fix for anything that ships today. Names with dots in the middle (a..b) stay allowed. omarchy-state clear is untouched: find -name matches basenames only. (cherry picked from commit 0a65b45)
(cherry picked from commit a75924a)
userdel rewrites /etc/subuid and /etc/subgid, and like every shadow-utils database write it leaves the previous contents behind in a dash-suffixed backup. The scrub removed four of the six backups those tools produce, so the retained @factory baseline still named the previous owner in /etc/subuid- and /etc/subgid- along with their subordinate ID range. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> (cherry picked from commit a00be8f)
The runner already rejects a slash, a bare . or .. The installer still joined the type into hooks/<type>.d before mkdir/cp, so a name nothing can run could still land on disk. (cherry picked from commit e522a18)
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Merges 2 new first-parent commits (4 cherry-picked non-merge commits) from omacom/omarchy
quattrosince last night's check (2fbac0c8/ PR #23). Upstream HEAD is now9c5482c5(upstream #8170, merged 2026-09-16).This is everything new since the 2026-09-15 cron. Leftover #18 already landed this morning as PR #24. Fork-only Cursor work is untouched: official-tarball installer, no mise wrapper, usage collector, and the theme-set fix from #22.
Factory reset now actually erases old hashes (upstream omacom#10379, fixes omacom#10378)
passwd --lockleft the previous root hash in@factory/etc/shadowand the dash-suffixed backups, so the next owner could recover itscrub_factory_accountsnow runs on both the staged reset root and the retained@factorybaseline:userdeluid≥1000 accounts, set root's password field to!, then delete the shadow-utils backupssubuid-/subgid-(userdel left the previous owner's subordinate ID range in those backups)@factoryback to read-onlyHook and state names cannot be paths (upstream omacom#8170)
omarchy-hook,omarchy-hook-install, andomarchy-state setnow refuse an empty name, a name with/, or a name that is exactly.or..(exit 2)omarchy-hook ../../evilfrom running~/.config/evilandomarchy-state set ../../escapefrom creating~/.local/escapeomarchy-hook-installgot the same guard so a slashed type cannotmkdir/cpunderhooks/<type>.dbefore the runner would refuse ita..b) stay allowed.omarchy-state clearis unchanged:find -namematches basenames onlyTests
Focused suites passed:
hook-state-name-guard-test.sh(19 cases),factory-reset-accounts-test.sh(both roots, repeat reset, six injected cleanup failures; ran via user namespace), and./test/cli(metadata unchanged).