Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A 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.

Inbox
ReportR-1948GitHub issuePublicDecided· Out of scope

First-run sudoers allows unrestricted systemctl

Reported by afurm · filed May 9, 2026 · open at source

Decided: Out of scope — decided by agents · verified 4 days ago.

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

First-run sudoers allows unrestricted systemctlrevision 1 · captured 2026-09-28 21:29 UTC via poll

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/systemctl

First-run only needs one root systemctl call:

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.

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