Composer-Schwachstellen: Wenn der Paketmanager zur Gefahr wird
Der PHP-Paketmanager Composer ist das Herzstück moderner PHP-Entwicklung. Kaum ein Projekt kommt ohne die composer.json und den automatisierten Dependency-Management-Prozess aus. Genau diese zentrale Rolle macht Composer jedoch zu einem attraktiven Angriffsziel. Aktuell warnen die Maintainer vor zwei hochkritischen Command-Injection-Schwachstellen, die Angreifern die Ausführung beliebiger Kommandos auf dem System des Entwicklers ermöglichen.
Die technischen Details
Betroffen ist der Treiber für das Versionsverwaltungssystem Perforce. Die beiden Schwachstellen im Einzelnen:
CVE-2026-40176 (CVSS 7.8): Eine unsachgemäße Eingabevalidierung (Improper Input Validation) ermöglicht es einem Angreifer, der eine Repository-Konfiguration kontrolliert, beliebige Kommandos über eine bösartige composer.json zu injizieren. Voraussetzung dafür ist, dass die Datei ein Perforce VCS-Repository deklariert. Die injizierten Kommandos laufen im Kontext des Benutzers, der Composer ausführt – was auf Entwicklungsmaschinen oft administrative Rechte bedeutet.
CVE-2026-40261 (CVSS 8.8): Auch hier handelt es sich um eine unsachgemäße Eingabevalidierung, diesmal resultierend aus unzureichendem Escaping. Ein Angreifer kann über eine manipulierte Source-Referenz, die Shell-Metazeichen enthält, Kommandos injizieren.
Das besonders Heimtückische an beiden Schwachstellen: Composer führt die injizierten Kommandos selbst dann aus, wenn Perforce auf dem System gar nicht installiert ist. Das erweitert den Kreis der potenziell Betroffenen erhebig, da viele Entwickler Perforce gar nicht nutzen und sich daher möglicherweise in falscher Sicherheit wiegen.
Betroffene Versionen und Fixes
Die Schwachstellen betreffen folgende Versionen:
- Versionen
>= 2.3, < 2.9.6(behoben in Version 2.9.6) - Versionen
>= 2.0, < 2.2.27(behoben in Version 2.2.27)
Entwickler und DevOps-Teams sollten umgehend auf die gepatchten Versionen aktualisieren. Die Maintainer betonen ausdrücklich: "Composer installations should be updated immediately regardless."
Workarounds und Best Practices
Falls eine sofortige Aktualisierung im laufenden Betrieb nicht möglich ist, empfehlen die Maintainer folgende Maßnahmen:
- Manuelle Inspektion: Überprüfen Sie
composer.json-Dateien vor der Ausführung von Composer. Stellen Sie sicher, dass Perforce-bezogene Felder gültige Werte enthalten. - Vertrauenswürdigkeit prüfen: Nutzen Sie nur vertrauenswürdige Composer-Repositories und führen Sie Composer-Befehle nur für Projekte aus vertrauenswürdigen Quellen aus.
- Installationseinstellungen anpassen: Vermeiden Sie die Installation von Dependencies mit der Option
--prefer-distoder der Konfigurationpreferred-install: dist.
Einordnung: Supply-Chain-Sicherheit bleibt ein schwaches Glied
Dieser Vorfall ist ein weiteres, deutliches Beispiel für die anhaltenden Risiken in der Software-Supply-Chain. Während Angriffe auf Paket-Repositories wie PyPI oder npm bereits breit diskutiert werden, zeigt dieser Fall, dass auch die Werkzeuge zur Verwaltung dieser Pakete selbst angreifbar sind. Die Angriffsfläche verlagert sich von den Paketen auf den Paketmanager.
Die Tatsache, dass die Schwachstellen über die composer.json ausgenutzt werden können, ist besonders kritisch. In modernen Entwicklungsworkflows wird composer install oft automatisch in CI/CD-Pipelines ausgeführt, sobald ein Repository geklont wird. Ein kompromittiertes Upstream-Repository oder ein bösartiger Commit könnte auf diese Weise die gesamte Pipeline und die Infrastruktur infizieren – ein klassischer Supply-Chain-Angriff.
Die Reaktion der Maintainer ist bemerkenswert proaktiv: Ein Scan von Packagist.org ergab keine Hinweise auf eine aktive Ausnutzung der Schwachstellen durch bereits veröffentlichte bösartige Pakete. Als Vorsichtsmaßnahme wurde die Veröffentlichung von Perforce-Quell-Metadaten auf Packagist.org bereits seit dem 10. April 2026 deaktiviert. Für Kunden von Private Packagist Self-Hosted wird ein neues Release erwartet.
Fazit
Die Schwachstellen in Composer sind ein klares Signal: Sicherheit in der Supply-Chain endet nicht bei den Paketen selbst, sondern umfasst die gesamte Werkzeugkette. Entwickler und DevOps-Teams sollten nicht nur ihre Dependencies, sondern auch die Werkzeuge zur Verwaltung im Blick behalten und Updates zeitnah einspielen.
Die Empfehlung, composer.json-Dateien vor der Ausführung manuell zu inspizieren, ist in der Praxis – besonders in automatisierten Pipelines – oft schwer umsetzbar. Hier sind automatisierte Sicherheitsprüfungen und strikte Sandbox-Umgebungen für Build-Prozesse der bessere Weg. Die Aktualisierung auf Composer 2.9.6 oder 2.2.27 sollte jedoch in jedem Fall mit höchster Priorität erfolgen.
Quelle: The Hacker News