#Homelab · 3 Min. Lesezeit · Tim Rinkel

WARNUNG! Forgejo schließt JETZT eine Lücke in den eigenen Actions — Fork-PRs klauten Secrets

WARNUNG! Forgejo schließt JETZT eine Lücke in den eigenen Actions — Fork-PRs klauten Secrets

Wer sein eigenes Git-Hosting betreibt, kennt Forgejo meist als die gemeinschaftlich entwickelte Alternative zu Gitea und GitHub. Mit den Versionen 16.0.6 und dem Langzeit-Release 15.0.10 schließt das Projekt jetzt mehrere Sicherheitslücken in der eigenen CI/CD-Komponente Forgejo Actions — die wichtigste davon betrifft ausgerechnet den Schutz vor fremdem Code aus Fork-Pull-Requests.

WENN DER FORK PLÖTZLICH ALS ORIGINAL GILT

Forgejo Actions behandelt Workflows aus Pull-Requests fremder Forks bewusst strenger als normale Workflows: Sie benötigen vor der Ausführung eine Freigabe, und sensible Secrets werden ihnen grundsätzlich nicht zur Verfügung gestellt. Genau diese Unterscheidung funktionierte laut den Release-Notes bei zwei bestimmten Ereignis-Typen nicht korrekt — pull_request_review und pull_request_review_comment wurden anhand der Basis des Pull-Requests statt anhand des tatsächlichen Kopf-Branches ausgelöst. Workflows, die genau auf diese Ereignisse reagieren, wurden dadurch nicht als Fork-Workflows erkannt. Die üblichen Schutzmechanismen — Freigabepflicht und Secrets-Ausschluss — griffen deshalb nicht, und ein entsprechender Workflow ließ sich nach der Erstellung des Pull-Requests auslösen.

DREI WEITERE LÜCKEN IM GEPÄCK

Der Patch bringt noch drei weitere, kleinere Fixes mit. Erstens konnte die API-Route zum Löschen von Issue-Labels über eine numerische Datenbank-ID auch Metadaten von Labels aus einem fremden Repository offenlegen, auch wenn der eigentliche Löschvorgang wirkungslos blieb. Zweitens gab es eine Verwechslungsgefahr bei den Löschrouten für Organisations- und Repository-Labels, wenn Organisation und Repository zufällig dieselbe interne Datenbank-ID trugen — dadurch ließ sich die Berechtigungsprüfung über den tatsächlichen Besitzer aushebeln. Drittens wurde beim Anlegen eines Tags über die Release-API unnötig viel Metadaten zu Release-Anhängen geladen und teilweise in der API-Antwort zurückgegeben; dieser dritte Fix war ursprünglich nicht Teil der embargierten Sicherheits-Patches, wurde aber wegen seiner Sicherheitsrelevanz zusätzlich dokumentiert.

ZWEI SCHIENEN FÜR UNTERSCHIEDLICHE BEDÜRFNISSE

Forgejo pflegt parallel zwei Release-Linien. 16.0.6 ist der aktuelle Stable-Zweig mit Support bis zum 29. Oktober 2026 — kurz bevor die nächste große Version 17.0 erwartet wird. Wer lieber auf einem langfristig gepflegten Zweig bleibt, greift zum LTS-Release 15.0.10, das bis zum 15. Juli 2027 mit Sicherheitsupdates versorgt wird. Beide Versionen enthalten exakt dieselben Sicherheitsfixes, nur der Rest des Änderungsprotokolls unterscheidet sich je nach Zweig.

WAS DU JETZT TUN SOLLTEST

Konkret empfiehlt sich dieses Vorgehen:

  • Stable-Nutzer aktualisieren auf 16.0.6, LTS-Nutzer auf 15.0.10 — jeweils per Binary oder Container-Image.
  • Wer Forgejo Actions mit externen Mitwirkenden und Fork-Pull-Requests nutzt, sollte vergangene Workflow-Läufe auf ungewöhnliche Ausführungen bei pull_request_review-Events prüfen.
  • Projekte mit sensiblen Secrets in Actions-Workflows sollten die Freigabe-Einstellungen für Fork-Pull-Requests einmal gegenprüfen.
  • Ein Konfigurationseingriff über das Update hinaus ist nicht nötig, die Fixes greifen automatisch nach dem Upgrade.

Häufige Fragen

Was ist neu in Forgejo 16.0.6 und 15.0.10?
Beide Versionen schließen vor allem einen Fehler in Forgejo Actions, durch den Workflows aus Fork-Pull-Requests nicht korrekt als solche erkannt wurden und dadurch an Freigabepflicht und Secrets-Schutz vorbeilaufen konnten. Dazu kommen drei kleinere Fixes rund um Label-Metadaten und Berechtigungsprüfungen.
Lohnt sich das Update sofort oder kann ich warten?
Wer Forgejo Actions mit Pull-Requests aus fremden Forks nutzt, sollte zeitnah aktualisieren, da die Lücke den Schutz von Secrets betrifft. Instanzen ohne Actions oder ohne externe Mitwirkende sind weniger akut gefährdet, sollten das Update aber trotzdem im nächsten regulären Wartungsfenster einspielen.
Bricht das Update bestehende Konfigurationen?
Nein, es handelt sich um reine Fehlerkorrekturen ohne Änderungen am Konfigurationsformat. Bestehende Workflows, Repositories und Einstellungen bleiben unverändert, lediglich die fehlerhafte Erkennung von Fork-Workflows wird korrigiert.
Wie führe ich das Update durch?
Je nach Installationsart über das aktualisierte Binary oder das neue Container-Image einspielen — Stable-Nutzer wählen 16.0.6, Nutzer des Langzeit-Zweigs 15.0.10. Ein Datenbank-Migrationsschritt ist für diese Patch-Version nicht dokumentiert.

Quellen

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert