Finales Re-Review @ 43c19f2: Approve.
Alle drei Punkte aus #1059 verifiziert:
- [85] ✅
run_userwechselt viaenv -C "$RUNNER_DIR"ins Arbeitsverzeichnis —.runnerlandet im…
Triage Re-Review (Browser-Claude)
[85] gefixt — exakt der vorgeschlagene Einzeiler: run_user() wechselt jetzt via env -C "$RUNNER_DIR" hart ins Arbeitsverzeichnis, .runner landet…
Re-Review @ ebdd3f5 (Fix-Commits f06e873 + ebdd3f5, Triage #1057):
Die Triage stimmt fast vollständig — alle sechs ursprünglichen Findings sind sauber adressiert. Der argv-Umbau hat aber…
Triage der Review-Findings (Browser-Claude, Autor des PRs)
Alle 4 blockierenden Findings gefixt, dazu 70 mitgenommen und 76 entschärft — zwei Commits auf dem Branch:
Cross-Review-Verdict (Fokus: Registrierungs-Idempotenz, Unit, versteckte Privilegien, docker-Gruppe vor Daemon-Start):
Nicht mergen — 4 Findings ≥ 80 (Re-Run-Idempotenz #1, docker-Gruppe…
[76] Quoting der Deploy-Env und des Register-Kommandos nicht robust
ct/runner.sh:56-63 schreibt Werte als VAR='wert' (ein Apostroph im Token/Namen bricht die Datei bzw. injiziert), und…
[80 — blockierend] App-Prompts umgehen die K-114-Validierungshelfer
ct/runner.sh:34-48: GITEA_INSTANCE_URL und RUNNER_TOKEN werden per nacktem read eingelesen; RUNNER_NAME/`RUNNER_L…
[70] systemd-Unit ohne Hardening-Optionen
install/runner-install.sh:99-108: Die Unit läuft als User=runner, setzt aber kein NoNewPrivileges=true/PrivateTmp=true (Wirkung wegen…
[82 — blockierend] Unit koppelt nicht an docker.service
install/runner-install.sh:96-97: Die Unit hat nur After=network-online.target docker.service + Wants=network-online.target.…
[88 — blockierend] docker-Gruppe = de-facto root im LXC — Sicherheitsmodell explizit machen
install/runner-install.sh:73: Der Runner-User ist Mitglied der docker-Gruppe. Das ist…
[90 — blockierend] Re-Run nicht idempotent: Installer verlangt das bereits geshredderte Deploy-Env
install/runner-install.sh:21 bricht hart ab, wenn /root/runner.deploy.env fehlt —…
Scope-Erweiterung @ 7f64b12 (drei Commits):
runs-on: homelab(5f532fe): Mini-CI läuft jetzt auf dem instanzweiten Runner aus PR #6 (ct/runner.sh, ohne Deploy-Rechte) statt auf…