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.
First-run sudoers allows unrestricted systemctl
Reported by afurm · filed May 9, 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
System details
Omarchy dev branch at 3eca9573; first-run sudoers; hardware independent
What's wrong?
Omarchy creates /etc/sudoers.d/first-run during install so first-run scripts can finish setup after the user logs in. That sudoers file currently grants the installing user passwordless access to /usr/bin/systemctl with no argument restrictions:
$USER ALL=(ALL) NOPASSWD: /usr/bin/systemctlFirst-run only needs one root systemctl call:
sudo systemctl enable ufwBecause sudoers treats a command with no argument list as allowing any arguments, any process running as the user before first-run cleanup can invoke arbitrary root systemctl actions without a password. That widens a temporary first-run convenience rule into a general root service-control path.
Steps to recreate:
- Run the Omarchy install path through
install/preflight/first-run-mode.sh. - Inspect
/etc/sudoers.d/first-runor runsudo -lfor the installing user. - Notice the unrestricted
NOPASSWD: /usr/bin/systemctlentry. - Compare it to the only root systemctl call in first-run:
sudo systemctl enable ufwininstall/first-run/firewall.sh.
Expected behavior:
The temporary first-run sudoers file should permit only the exact root commands first-run needs, such as systemctl enable ufw, and should keep cleanup commands explicit.
Actual behavior:
The temporary sudoers file permits passwordless root systemctl with arbitrary arguments until first-run removes /etc/sudoers.d/first-run.
Suggested fix:
Replace the bare systemctl sudoers entry with a Cmnd_Alias for /usr/bin/systemctl enable ufw, and update reboot sudoers cleanup so it uses an explicitly permitted cleanup command rather than an unpermitted sudo test precheck.
View raw text
### System details Omarchy dev branch at 3eca9573; first-run sudoers; hardware independent ### What's wrong? Omarchy creates `/etc/sudoers.d/first-run` during install so first-run scripts can finish setup after the user logs in. That sudoers file currently grants the installing user passwordless access to `/usr/bin/systemctl` with no argument restrictions: ```bash $USER ALL=(ALL) NOPASSWD: /usr/bin/systemctl ``` First-run only needs one root `systemctl` call: ```bash sudo systemctl enable ufw ``` Because sudoers treats a command with no argument list as allowing any arguments, any process running as the user before first-run cleanup can invoke arbitrary root `systemctl` actions without a password. That widens a temporary first-run convenience rule into a general root service-control path. Steps to recreate: 1. Run the Omarchy install path through `install/preflight/first-run-mode.sh`. 2. Inspect `/etc/sudoers.d/first-run` or run `sudo -l` for the installing user. 3. Notice the unrestricted `NOPASSWD: /usr/bin/systemctl` entry. 4. Compare it to the only root systemctl call in first-run: `sudo systemctl enable ufw` in `install/first-run/firewall.sh`. Expected behavior: The temporary first-run sudoers file should permit only the exact root commands first-run needs, such as `systemctl enable ufw`, and should keep cleanup commands explicit. Actual behavior: The temporary sudoers file permits passwordless root `systemctl` with arbitrary arguments until first-run removes `/etc/sudoers.d/first-run`. Suggested fix: Replace the bare `systemctl` sudoers entry with a `Cmnd_Alias` for `/usr/bin/systemctl enable ufw`, and update reboot sudoers cleanup so it uses an explicitly permitted cleanup command rather than an unpermitted `sudo test` precheck.
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 02:56 UTC