Skip to main content

Verwundbares Gradle-Plugin-publish-Plugin legt vertrauliche Informationen offen

Artikel von
prioritize vulns

31. März 2020

0 Min. Lesezeit

Erst vor wenigen Tagen, am 27. März, wurde eine Sicherheitslücke im plugin-publish-Plugin von Gradle offengelegt und veröffentlicht: CVE-2020-7599. Sie betrifft alle Versionen des Pakets vor 0.11.0. Danny Thomas, Developer Productivity bei Netflix, entdeckte die Sicherheitslücke am 4. März und meldete sie umgehend an Gradle.

Vertrauliche Informationen

Bei dem Problem in diesem Paket handelt es sich um eine sogenannte „Insertion of Sensitive Information“-Sicherheitslücke. In diesem konkreten Fall gibt das Paket vertrauliche Informationen in der Protokolldatei aus. Wenn ein Plugin-Autor ein Gradle-Plugin mit dem Gradle-Plugin com.gradle.plugin-publish veröffentlicht, wird eine vorab signierte AWS-URL an das Plugin übergeben. Wird der Gradle-Build mit --info oder einer niedrigeren Protokollebene ausgeführt, erscheint diese URL in der Protokolldatei. Ist dieses Build-Protokoll öffentlich einsehbar, wie es bei vielen öffentlichen CI-Systemen der Fall ist, kann die URL für einen böswilligen Angriff verwendet werden. Ein Beispiel für ein solches Datenleck zeigt dieser öffentliche CI-Build von Danny Thomas.

Möglicher Angriff

Die URL ist eine Stunde lang gültig und kann wiederverwendet werden. Ein Angreifer könnte diese URL also nutzen, um ein kürzlich hochgeladenes Plugin durch ein schädliches Paket zu ersetzen. Nach einer Untersuchung des Vorfalls erklärte Gradle, dass keine Artefakte ersetzt wurden. Wichtig ist auch: Standardmäßig wird die URL nicht in den Protokollen angezeigt, da die standardmäßige Protokollebene laut der Gradle-Dokumentation LIFECYCLE ist.

Behebung

Gradle veröffentlichte daraufhin eine neue Version des Publish-Plugins, in der die Protokollebene für die URL reduziert wurde. Es wird empfohlen, das plugin-publish-Plugin auf Version 0.11.0 zu aktualisieren. Achten Sie außerdem darauf, Gradle nicht mit der Protokollebene --debug auszuführen, da die URL dabei weiterhin offengelegt wird. Generell gilt es als sehr gefährlich, die Protokollebene zu senken, wenn die Protokolle öffentlich einsehbar sind. Neben der Veröffentlichung einer gepatchten Plugin-Version verkürzte Gradle auch die Gültigkeitsdauer der vorab signierten URL, um das Zeitfenster für einen Angriff zu verkleinern. Weitere Informationen finden Sie im Sicherheitsblog.

Starten Sie mit Capture-the-Flag

Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Challenges lösen.

Weiterlesen

Blog

Frontier-Modelle fanden die Schwachstellen. Nur der Angreifer fand die Angriffsketten.

Die statische Analyse fand die Schwachstellen, doch erst Live-Angriffstests bewiesen, wie sie sich zu Angriffen verketten lassen. Ein Vergleich von Evo COS, Claude Security und Claude Code Security.

feature insights context
Blog

Autonome Angriffe sind bereits Realität. Die Verteidigung muss Schritt halten.

Autonome Angreifer verkürzen das Zeitfenster für die Verteidigung. Erfahren Sie, wie kontinuierliches Erkennen, Beheben, Validieren und Verhindern Sicherheitsteams helfen kann, Schritt zu halten.

Blog

Ihr Schwachstellen-Backlog ist keine technische Schuld mehr, sondern eine Angriffsfläche

Ein wachsender Schwachstellen-Backlog ist mehr als eine technische Altlast: Er ist eine Angriffsfläche. Erfahren Sie, warum veraltete Risikoeinschätzungen, automatisierte Angreifer und verkettete Findings einen neuen Ansatz erfordern.