In Composer wurde eine Sicherheitsanfälligkeit festgestellt, die das PHP-Repository von Packagist gefährdet

Vor ein paar Tagen Es wurde bekannt, dass eine kritische Sicherheitslücke identifiziert wurde en der Abhängigkeitsmanager von Komponieren (CVE-2021-29472), mit dem Sie beliebige Befehle auf dem System ausführen können, wenn Sie ein Paket mit einem speziell geformten URL-Wert verarbeiten, der die Richtung zum Herunterladen des Quellcodes bestimmt.

Das Problem manifestiert sich in den Komponenten GitDriver, SvnDriver und HgDriver Wird mit den Quellcodeverwaltungssystemen Git, Subversion und Mercurial verwendet. Die Sicherheitsanfälligkeit wurde in den Composer-Versionen 1.10.22 und 2.0.13 behoben.

Besonders betroffen ist das Standard-Packagist-Paket-Repository von Composer, das 306.000 PHP-Entwicklerpakete enthält und mehr als 1.400 Milliarden Downloads pro Monat bietet.

Im PHP-Ökosystem ist Composer das Hauptwerkzeug zum Verwalten und Installieren von Softwareabhängigkeiten. Entwicklungsteams auf der ganzen Welt nutzen es, um den Upgrade-Prozess zu vereinfachen und sicherzustellen, dass Anwendungen mühelos in allen Umgebungen und Versionen ausgeführt werden.

Das Experiment zeigte, dass die Angreifer, wenn Informationen über das Problem vorhanden waren, die Kontrolle über die Packagist-Infrastruktur übernehmen und die Anmeldeinformationen der Betreuer abfangen oder den Download von Paketen auf einen Server eines Drittanbieters umleiten konnten, um die Lieferung von Paketvarianten mit Änderungen zu veranlassen. böswillige Benutzer, um eine Hintertür während der Abhängigkeitsinstallation zu ersetzen.

Die Gefahr für Endbenutzer ist begrenzt Aufgrund der Tatsache, dass der Inhalt von composer.json normalerweise vom Benutzer definiert wird und die Links zur Quelle beim Zugriff auf Repositorys von Drittanbietern übergeben werden, die normalerweise zuverlässig sind. Der Hauptschlag fiel auf das Repository von Packagist.org und den Dienst Private Packagist. die Composer mit der Übertragung von Daten aufrufen, die von Benutzern empfangen wurden. Angreifer können ihren Code auf Packagist-Servern ausführen, indem sie ein speziell gestaltetes Paket ablegen.

Das Packagist-Team hat die Sicherheitsanfälligkeit innerhalb von 12 Stunden nach Benachrichtigung behoben der Verwundbarkeit. Die Forscher haben die Entwickler von Packagist am 22. April privat benachrichtigt, und das Problem wurde am selben Tag behoben. Ein öffentliches Composer-Update mit einem Fix für die Sicherheitsanfälligkeit wurde am 27. April veröffentlicht, und Details wurden am 28. April bekannt gegeben. Eine Überprüfung der Protokolle auf den Servern von Packagist ergab keine verdächtigen Aktivitäten im Zusammenhang mit der Sicherheitsanfälligkeit.

Fehler beim Einfügen von Argumenten sind eine wirklich interessante Klasse von Fehlern, die bei Codeüberprüfungen häufig übersehen und bei Black-Box-Interaktionen vollständig übersehen werden.

Das Problem wird durch einen Fehler im URL-Validierungscode verursacht in der Datei root composer.json und in den Quell-Download-Links. Der Fehler ist seit November 2011 im Code vorhanden. Packagist verwendet spezielle Ebenen, um Code-Downloads zu verwalten, ohne an ein bestimmtes Quellcodeverwaltungssystem gebunden zu sein. Dies wird durch Aufrufen von "fromShellCommandline" mit Befehlszeilenargumenten ausgeführt.

Das Problem besteht darin, dass Sie mit der ProcessExecutor-Methode zusätzliche Aufrufparameter in der URL angeben können. Ein solches Escape fehlte in den Treibern GitDriver.php, SvnDriver.php und HgDriver.php. Der Angriff auf GitDriver.php wurde durch die Tatsache behindert, dass der Befehl "git ls-remote" die Angabe zusätzlicher Argumente nach dem Pfad nicht unterstützte.

Ein Angriff auf HgDriver.php war möglich, indem der Parameter "–config" an das Dienstprogramm "hq" übergeben wurde, mit dem die Ausführung eines Befehls durch Manipulieren der Konfiguration "alias.identify" organisiert werden kann.

Durch das Senden eines Testpakets mit einer ähnlichen URL an Packagist stellten die Forscher sicher, dass ihr Server nach seiner Veröffentlichung eine HTTP-Anfrage von einem der Packagist-Server in AWS erhielt, die eine Liste der Dateien im aktuellen Verzeichnis enthielt.

Es ist zu beachten, dass die Betreuer in der öffentlichen Instanz des Packagisten keine Anzeichen einer vorherigen Ausnutzung dieser Sicherheitsanfälligkeit festgestellt haben.

Wenn Sie mehr darüber erfahren möchten, können Sie die Details konsultieren im folgenden Link.


Hinterlasse einen Kommentar

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

*

*

  1. Verantwortlich für die Daten: AB Internet Networks 2008 SL
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.