Proof Portal
Omarchy
ProbeLabs65 findings · 95 requirementsA proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.
omarchy-remove-security-sshd consults root's authorized_keys under sudo/pkexec, so the user's keys survive removal
Reported by shaynhornik · filed Sep 1, 2026 · open at source
At a glance
- 1 · What is claimed?
- Only the report text below — no validator has restated it as checkable claims yet.
- 2 · What does it affect?
- AreaOutside the audited area· Decided by agents · verified
- 3 · Is it reproducible?
- No validation has been run yet.
- 4 · What remains unclear?
- Not validated yet: no claims, no reproducer.
- 5 · What happens next?
- Decided by agents and verified by a second, independent agent — see the decision.
Original report
Description
bin/omarchy-remove-security-sshd resolves the keys file as AUTHORIZED_KEYS="$HOME/.ssh/authorized_keys". The script is marked omarchy:requires-sudo=true, and under sudo (or pkexec, the escalation default/agents/skills/omarchy/SKILL.md prescribes for terminal-less callers) $HOME is /root — so the script inspects and offers to delete root's authorized_keys, not the invoking user's.
Impact
The command's stated contract is "Disable the OpenSSH server, close the firewall port, and optionally remove authorized keys". Under escalation:
- Root usually has no
authorized_keys, so[[ -s $AUTHORIZED_KEYS ]]is false and the removal prompt is silently skipped. The invoking user's real~/.ssh/authorized_keyssurvives, and those keys are live again the moment sshd is re-enabled — while the operator believes SSH access was fully torn down. - If root does have an
authorized_keys, the prompt targets and deletes root's keys instead of the user's.
This is the same $HOME-under-escalation class as #9569, but split out because here it changes a security decision rather than leaving cache data behind (related hardening context: #9267, #9255).
Root cause
AUTHORIZED_KEYS="$HOME/.ssh/authorized_keys"with no derivation of the invoking user, unlike sibling privileged scripts (omarchy-apply-lock derives OMARCHY_INSTALL_USER → SUDO_USER → PKEXEC_UID).
Suggested fix
Apply the omarchy-apply-lock target-user derivation and point AUTHORIZED_KEYS at that user's home. PR incoming.
Environment: observed against quattro @ 2de641b-era checkout (current tip), script unchanged on omacom/omarchy HEAD.
View raw text
## Description `bin/omarchy-remove-security-sshd` resolves the keys file as `AUTHORIZED_KEYS="$HOME/.ssh/authorized_keys"`. The script is marked `omarchy:requires-sudo=true`, and under `sudo` (or `pkexec`, the escalation `default/agents/skills/omarchy/SKILL.md` prescribes for terminal-less callers) `$HOME` is `/root` — so the script inspects and offers to delete **root's** `authorized_keys`, not the invoking user's. ## Impact The command's stated contract is "Disable the OpenSSH server, close the firewall port, and optionally remove authorized keys". Under escalation: - Root usually has no `authorized_keys`, so `[[ -s $AUTHORIZED_KEYS ]]` is false and the removal prompt is silently skipped. The invoking user's real `~/.ssh/authorized_keys` survives, and those keys are live again the moment sshd is re-enabled — while the operator believes SSH access was fully torn down. - If root *does* have an `authorized_keys`, the prompt targets and deletes root's keys instead of the user's. This is the same `$HOME`-under-escalation class as #9569, but split out because here it changes a security decision rather than leaving cache data behind (related hardening context: #9267, #9255). ## Root cause ```bash AUTHORIZED_KEYS="$HOME/.ssh/authorized_keys" ``` with no derivation of the invoking user, unlike sibling privileged scripts (`omarchy-apply-lock` derives `OMARCHY_INSTALL_USER` → `SUDO_USER` → `PKEXEC_UID`). ## Suggested fix Apply the `omarchy-apply-lock` target-user derivation and point `AUTHORIZED_KEYS` at that user's home. PR incoming. Environment: observed against `quattro` @ 2de641b-era checkout (current tip), script unchanged on `omacom/omarchy` HEAD.
Validation
Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.
Linked
Not linked to any known issue, other report or change yet.
Decision
Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.
- Out of scopeDecided by agents · verified · 2026-10-09 10:24 UTC