Repository navigation
Security-Review härten: Sandbox, kein Schreiben, private Befunde nicht öffentlich - #31
Merged
Merged
Conversation
…t öffentlich Kritik am ersten Stand: Code aus dem PR lief mit den Variablen, die ein Identity-Token anfordern, im selben Job; Write war nicht auf das Arbeitsverzeichnis begrenzt; Einstellungen aus dem PR wurden geladen; vorbestehende Lücken standen im öffentlichen Bericht. Jetzt läuft keine Zeile des PRs außerhalb der Sandbox von Claude Code, sudo ist vor dem Start abgeschaltet, der Bericht ist die letzte Antwort statt einer Datei, und vorbestehende Lücken werden Code-Scanning-Alerts. Die Testdatenbank entfällt, weil die Sandbox sie nicht erreicht.
…ufnimmt Ausdrücklich gesperrt: das Temp-Verzeichnis des Runners mit den Dateien hinter GITHUB_ENV und GITHUB_PATH, der Code der Actions, der Tool-Cache und das Home-Verzeichnis.
Unter dem Home liegt auch der Arbeitsbereich; gesperrt war damit das Arbeitsverzeichnis, und bwrap startete nicht. Ein fehlender Pfad hielte bwrap ebenso an.
MorlockNinja
pushed a commit
to opengewerk/opengewerk-haustechnik
that referenced
this pull request
Oct 10, 2026
Der Workflow der Organisation (opengewerk/.github#31) führt keinen Code des PRs mehr außerhalb der Sandbox aus, schreibt nichts und legt vorbestehende Lücken als Code-Scanning-Alerts ab. Der Aufruf gibt dafür security-events mit; die Testdatenbank entfällt.
MorlockNinja
pushed a commit
to opengewerk/opengewerk
that referenced
this pull request
Oct 10, 2026
Der Workflow der Organisation (opengewerk/.github#31) führt keinen Code des PRs mehr außerhalb der Sandbox aus, schreibt nichts und legt vorbestehende Lücken als Code-Scanning-Alerts ab. Der Aufruf gibt dafür security-events mit; die Testdatenbank entfällt.
MorlockNinja
pushed a commit
to opengewerk/opengewerk-api-spec
that referenced
this pull request
Oct 10, 2026
Der Workflow der Organisation (opengewerk/.github#31) führt keinen Code des PRs mehr außerhalb der Sandbox aus, schreibt nichts und legt vorbestehende Lücken als Code-Scanning-Alerts ab. Der Aufruf gibt dafür security-events mit; die Testdatenbank entfällt.
MorlockNinja
pushed a commit
to opengewerk/opengewerk-website
that referenced
this pull request
Oct 10, 2026
Der Workflow der Organisation (opengewerk/.github#31) führt keinen Code des PRs mehr außerhalb der Sandbox aus, schreibt nichts und legt vorbestehende Lücken als Code-Scanning-Alerts ab. Der Aufruf gibt dafür security-events mit; die Testdatenbank entfällt.
MorlockNinja
pushed a commit
to opengewerk/opengewerk-kanzlei
that referenced
this pull request
Oct 10, 2026
Der Workflow der Organisation (opengewerk/.github#31) führt keinen Code des PRs mehr außerhalb der Sandbox aus, schreibt nichts und legt vorbestehende Lücken als Code-Scanning-Alerts ab. Der Aufruf gibt dafür security-events mit; die Testdatenbank entfällt.
This was referenced Oct 10, 2026
Musiker15
added a commit
to opengewerk/opengewerk-api-spec
that referenced
this pull request
Oct 10, 2026
Das Security-Review läuft für dieses Repository jetzt in GitHub Actions, mit dem Workflow der Organisation (opengewerk/.github#27 bis #31), wie seit opengewerk/opengewerk-haustechnik#224 schon in der Haustechnik. Bisher lief es auf dem Rechner von Moritz mit einem kostenlosen Modell, dessen Kontingent am 10.10.2026 aufgebraucht war. Entschieden von Moritz am 10.10.2026. ## Was sich ändert - `.github/workflows/security-review.yml` ruft den Workflow der Organisation auf, auf `pull_request` und `pull_request_target`, angeheftet an seinen Commit `c6ed917` auf `main`, den gehärteten Stand aus opengewerk/.github#31: - PR aus einem Branch dieses Repositorys von einem Mitglied: Review mit einer Shell in der Sandbox von Claude Code, ohne Zugang zum Identity-Token, ohne sudo und ohne Netz außer der npm-Registry. Tests mit Datenbank laufen in der CI des PRs. - PR von außen: nur lesend, in der Environment `security-review-extern`, die auf die Freigabe von Moritz wartet. - Ein neuer Push bricht den Lauf des vorigen ab, geprüft wird nur der neueste Commit. - Das Ergebnis steht als Kommentar am PR und als Status `PR-Security-Review` auf dem Head; keine Pflichtprüfung. - Claude Code meldet sich über Workload Identity Federation an, ohne gespeicherten Schlüssel. Der Aufruf gibt `security-events: write` mit: vorbestehende Lücken, die das Review findet, werden Code-Scanning-Alerts, die nur Maintainer sehen, statt im öffentlichen Kommentar zu stehen. - `CHANGELOG.md` unter "Geändert", wo es eines gibt. ## Geprüft - Die drei Textprüfungen der CI. - Dieser PR kommt aus einem Branch des Repositorys, also läuft auf ihm selbst schon das volle Review. Das ist der Test, dass der Aufruf hier funktioniert.
Musiker15
added a commit
to opengewerk/opengewerk-website
that referenced
this pull request
Oct 10, 2026
* Security-Review in GitHub Actions aufrufen Der Workflow der Organisation prüft jeden Pull Request, für Mitglieder voll, von außen nur lesend. Er löst den Reviewer ab, der auf einem Rechner lief. * Security-Review: Aufruf auf den gehärteten Stand heben Der Workflow der Organisation (opengewerk/.github#31) führt keinen Code des PRs mehr außerhalb der Sandbox aus, schreibt nichts und legt vorbestehende Lücken als Code-Scanning-Alerts ab. Der Aufruf gibt dafür security-events mit; die Testdatenbank entfällt.
Musiker15
added a commit
to opengewerk/opengewerk-kanzlei
that referenced
this pull request
Oct 10, 2026
Das Security-Review läuft für dieses Repository jetzt in GitHub Actions, mit dem Workflow der Organisation (opengewerk/.github#27 bis #31), wie seit opengewerk/opengewerk-haustechnik#224 schon in der Haustechnik. Bisher lief es auf dem Rechner von Moritz mit einem kostenlosen Modell, dessen Kontingent am 10.10.2026 aufgebraucht war. Entschieden von Moritz am 10.10.2026. ## Was sich ändert - `.github/workflows/security-review.yml` ruft den Workflow der Organisation auf, auf `pull_request` und `pull_request_target`, angeheftet an seinen Commit `c6ed917` auf `main`, den gehärteten Stand aus opengewerk/.github#31: - PR aus einem Branch dieses Repositorys von einem Mitglied: Review mit einer Shell in der Sandbox von Claude Code, ohne Zugang zum Identity-Token, ohne sudo und ohne Netz außer der npm-Registry. Tests mit Datenbank laufen in der CI des PRs. - PR von außen: nur lesend, in der Environment `security-review-extern`, die auf die Freigabe von Moritz wartet. - Ein neuer Push bricht den Lauf des vorigen ab, geprüft wird nur der neueste Commit. - Das Ergebnis steht als Kommentar am PR und als Status `PR-Security-Review` auf dem Head; keine Pflichtprüfung. - Claude Code meldet sich über Workload Identity Federation an, ohne gespeicherten Schlüssel. Der Aufruf gibt `security-events: write` mit: vorbestehende Lücken, die das Review findet, werden Code-Scanning-Alerts, die nur Maintainer sehen, statt im öffentlichen Kommentar zu stehen. - `CHANGELOG.md` unter "Geändert", wo es eines gibt. ## Geprüft - Die drei Textprüfungen der CI. - Dieser PR kommt aus einem Branch des Repositorys, also läuft auf ihm selbst schon das volle Review. Das ist der Test, dass der Aufruf hier funktioniert.
Musiker15
added a commit
to opengewerk/opengewerk
that referenced
this pull request
Oct 10, 2026
Das Security-Review läuft für dieses Repository jetzt in GitHub Actions, mit dem Workflow der Organisation (opengewerk/.github#27 bis #31), wie seit opengewerk/opengewerk-haustechnik#224 schon in der Haustechnik. Bisher lief es auf dem Rechner von Moritz mit einem kostenlosen Modell, dessen Kontingent am 10.10.2026 aufgebraucht war. Entschieden von Moritz am 10.10.2026. ## Was sich ändert - `.github/workflows/security-review.yml` ruft den Workflow der Organisation auf, auf `pull_request` und `pull_request_target`, angeheftet an seinen Commit `c6ed917` auf `main`, den gehärteten Stand aus opengewerk/.github#31: - PR aus einem Branch dieses Repositorys von einem Mitglied: Review mit einer Shell in der Sandbox von Claude Code, ohne Zugang zum Identity-Token, ohne sudo und ohne Netz außer der npm-Registry. Tests mit Datenbank laufen in der CI des PRs. - PR von außen: nur lesend, in der Environment `security-review-extern`, die auf die Freigabe von Moritz wartet. - Ein neuer Push bricht den Lauf des vorigen ab, geprüft wird nur der neueste Commit. - Das Ergebnis steht als Kommentar am PR und als Status `PR-Security-Review` auf dem Head; keine Pflichtprüfung. - Claude Code meldet sich über Workload Identity Federation an, ohne gespeicherten Schlüssel. Der Aufruf gibt `security-events: write` mit: vorbestehende Lücken, die das Review findet, werden Code-Scanning-Alerts, die nur Maintainer sehen, statt im öffentlichen Kommentar zu stehen. - `CHANGELOG.md` unter "Geändert", wo es eines gibt. ## Geprüft - Die drei Textprüfungen der CI. - Dieser PR kommt aus einem Branch des Repositorys, also läuft auf ihm selbst schon das volle Review. Das ist der Test, dass der Aufruf hier funktioniert.
Musiker15
added a commit
to opengewerk/opengewerk-haustechnik
that referenced
this pull request
Oct 10, 2026
* Security-Review: Aufruf auf den Stand mit Bau heben Der Workflow der Organisation baut seit opengewerk/.github#30 die Pakete, bevor er testet. Die ersten Reviews hier blieben ohne sie statisch. * Security-Review: Aufruf auf den gehärteten Stand heben Der Workflow der Organisation (opengewerk/.github#31) führt keinen Code des PRs mehr außerhalb der Sandbox aus, schreibt nichts und legt vorbestehende Lücken als Code-Scanning-Alerts ab. Der Aufruf gibt dafür security-events mit; die Testdatenbank entfällt.
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.
Härtung des Security-Reviews nach einer Kritik am ersten Stand. Die Grundarchitektur bleibt (eigener Job zum Veröffentlichen, OIDC statt Schlüssel,
pull_request_targetohne Ausführung,persist-credentials: false, angehefteter Commit); behoben ist, was an ihr vorbei ging.Was die Kritik fand, und was sich ändert
ACTIONS_ID_TOKEN_REQUEST_*jedem Schritt eines Jobs mitid-token: write, also auchpnpm installundpnpm run builddes PRs; dazu passwortlosessudound offenes Netz. Jetzt:failIfUnavailable,allowUnsandboxedCommands: false, eigener Prozessraum (CLAUDE_CODE_SUBPROCESS_ENV_SCRUB), die Variablen des Tokens entfernt, Netz nur zuregistry.npmjs.org, Lesen des Temp-Verzeichnisses des Runners gesperrt, Schreiben dort, in_actionsund_toolgesperrt.sudoist abgeschaltet, bevor Claude Code startet; der Schritt bricht ab, wenn es noch geht.localhost. Tests mit Datenbank laufen in der CI des PRs.Writewar nicht auf das Arbeitsverzeichnis begrenzt.Write,EditundNotebookEditsind jetzt verboten, Lesen ist mitblockReadsOutsideWorkingDirectoriesauf das Arbeitsverzeichnis begrenzt. Der Bericht ist die letzte Antwort des Agenten (Ereignisresultim Stream), keine Datei mehr, die ein Test überschreiben könnte.--safe-modekommt--setting-sources user: eine.claude/settings.jsonim PR wird nicht geladen..github/**sind eine eigene Entscheidung.Der Job "Review" braucht dafür
security-events: write; die Aufrufe geben es mit, wenn sie auf diesen Stand gehoben werden. Die Eingabenpostgres-userundpostgres-portentfallen.Geprüft
sudogesperrt ("no new privileges"),example.comabgelehnt, vier Prozesse sichtbar, Schreiben außerhalb des Arbeitsverzeichnisses ohne Wirkung auf das echte Dateisystem. Der erste Lauf legte einen Testeintrag als Code-Scanning-Alert ab und nicht im Kommentar. Der zweite zeigte, dass eine Schreibsperre auf dem Home den Arbeitsbereich mit sperrt und bwrap dann nicht startet; die Sperre gilt seitdem nur für vorhandene Pfade unterhalb des Runners.