Skip to main content
Um dem Risiko von Angriffen und Manipulationen an GitHub Actions entgegenzuwirken, setzen auch die offiziellen Laravel-Projekte auf das Pinning von GitHub Actions. Diese Seite erläutert praxisnah die Sicherheitsmaßnahmen, die Paketentwickler umsetzen sollten.
Diese Seite ist eine Schwesterseite von Grundlagen der Paketentwicklung und setzt Grundkenntnisse zu GitHub Actions voraus.

Sicherheitsrisiken bei GitHub Actions

Gefahren einer Tag-basierten Referenz

Üblicherweise werden GitHub Actions per Tag referenziert:
Die Probleme dieses Vorgehens:
  • Tags sind verschiebbar — sie können gelöscht und mit demselben Namen neu erstellt werden.
  • Manipulationsrisiko — bei Übernahme des Repo-Accounts kann bösartiger Code eingeschleust werden.
  • Supply-Chain-Angriff — wenn eine abhängige Action kompromittiert wird, wird auch Ihr Workflow kompromittiert.

Umgang in offiziellen Laravel-Projekten

Sowohl laravel/laravel als auch laravel/framework pinnen alle Actions auf Commit-Hashes (SHA).

Strategie für die Umsetzung

Schritt 1: Dependabot-Konfiguration anlegen

Legen Sie in Ihrem Paket-Repository die Datei .github/dependabot.yml an. Sie können die Datei von Laravel direkt übernehmen.
Diese Datei übernimmt folgende Aufgaben:
  • Automatisches Scannen — sucht nach neuen Versionen der GitHub Actions.
  • Automatische PRs — erstellt bei Updates automatisch Update-PRs.
  • Update-Steuerung — nicht gepinnte Actions werden per Version aktualisiert, gepinnte Actions per SHA.

Schritt 2: Bestehende Actions auf SHAs pinnen

Ersetzen Sie in Ihren Workflows alle Action-Referenzen durch SHA-Hashes. Werkzeuge wie pinact automatisieren das.

Automatisierung mit pinact

Manuell umstellen

Ohne pinact ermitteln Sie die Commit-SHA jeder Action über die GitHub-Seite Lookup latest version und ersetzen manuell.

Schritt 3: Dependabot aktivieren

Committen und pushen Sie .github/dependabot.yml — Dependabot beginnt dann automatisch zu scannen.

Wie Dependabot automatisch aktualisiert

Dependabot wendet je nach Zustand der Datei unterschiedliche Update-Strategien an.

Nicht gepinnte Actions

Dependabot-Update: Aktualisiert den Versionsbereich auf eine neue Version.
Bequem, verträgt sich mit verschobenen Tags — aber Sicherheitsrisiken bleiben.

Gepinnte Actions

Dependabot-Update: Aktualisiert auf den Commit-Hash der neuen Version.
Die sicherste Variante. Auch neue Versionen werden über Commit-Hashes referenziert und sind manipulationsresistent.

Beispielhafte Workflow-Umsetzung

Ein vollständiges Beispiel mit mehreren Workflows.

Umgang mit Dependabot-Update-PRs

Update-PRs von Dependabot bearbeiten Sie wie folgt.

PR für ein einzelnes Action-Update

Für einfache Updates gehen Sie so vor:
  1. Ergebnisse der Workflow-Läufe prüfen.
  2. Auf Breaking Changes prüfen.
  3. Mergen — fertig.

Sicherheitsupdate-PR

Sicherheitsbezogene Updates werden priorisiert gemergt.

Gruppen-Updates mehrerer Actions

Wenn Sie in dependabot.yml groups konfigurieren, kommen mehrere Actions in einem einzigen PR.
Das reduziert die Anzahl der Merge-Vorgänge.

Vor- und Nachteile des Pinnings

Vorteile

Nachteile

Checkliste für Sicherheitsprüfungen

Checkliste bei neuen Paketprojekten.
  • .github/dependabot.yml anlegen
  • Alle bestehenden Actions auf SHA pinnen
  • pinact oder manuelle Prüfung abgeschlossen
  • Erfolgreicher Workflow-Lauf verifiziert
  • Dependabot-Update-PRs mindestens einmal pro Woche reviewen
  • Sicherheitsupdates priorisiert mergen
  • Neue Actions grundsätzlich per SHA referenzieren
  • Einmal pro Monat den Zustand aller Workflows prüfen
  • Alle Action-Referenzen sind SHAs
  • Dependabot ist aktiv
  • Alle Dependabot-PRs der letzten 6 Monate sind gemergt

Verwandte Seiten

Grundlagen der Paketentwicklung

Wie Sie Laravel-Pakete rund um Service Provider entwickeln.

Versionskompatibilität von Paketen verwalten

Strategien für Paket-Anpassungen bei Major-Upgrades von Laravel.
Zuletzt geändert am 13. Juli 2026