Kritische RCE-Schwachstelle in weit verbreiteter protobuf.js-Bibliothek entdeckt
Eine kritische Remote Code Execution (RCE)-Schwachstelle wurde in **protobuf.js**, einer beliebten JavaScript-Implementierung von **Googles** Protocol Buffers, identifiziert. Proof-of-Concept-Exploit-Code ist bereits verfügbar, was Bedenken für Anwendungen aufwirft, die diese Bibliothek für die Inter-Service-Kommunikation und Datenverarbeitung nutzen.

**protobuf.js**, das fast 50 Millionen wöchentliche Downloads im **Node Package Manager (npm)**-Registry verzeichnet, steht aufgrund eines kürzlich bekannt gewordenen Remote Code Execution (RCE)-Fehlers unter Beobachtung. Die Schwachstelle resultiert aus unsicherer dynamischer Code-Generierung, wie von **Endor Labs** berichtet.
### Die Schwachstelle: GHSA-xq3m-2v4x-88gg
Derzeit als GHSA-xq3m-2v4x-88gg (ohne offizielle **CVE**-ID) verfolgt, ermöglicht die Schwachstelle Angreifern, beliebigen Code in generierte Funktionen einzuschleusen, indem sie bösartige Schemata bereitstellen. Dies liegt an der Methode der Bibliothek, JavaScript-Funktionen aus Protobuf-Schemata zu erstellen, indem Zeichenketten verkettet und über den `Function()`-Konstruktor ausgeführt werden, ohne die aus dem Schema abgeleiteten Bezeichner ordnungsgemäß zu validieren.
**Endor Labs** erklärt, dass dieser Fehler RCE auf Servern oder Anwendungen ermöglicht, die angreiferbeeinflusste Schemata laden. Eine erfolgreiche Ausnutzung könnte den Zugriff auf sensible Informationen wie Umgebungsvariablen, Anmeldeinformationen und Datenbanken gewähren, was potenziell zu lateraler Bewegung innerhalb der kompromittierten Infrastruktur führen könnte. Entwicklermaschinen sind ebenfalls gefährdet, wenn sie lokal nicht vertrauenswürdige Schemata verarbeiten.
### Auswirkungen und Abhilfemaßnahmen
Die Schwachstelle betrifft **protobuf.js**-Versionen 8.0.0/7.5.4 und niedriger. Um das Risiko zu mindern, rät **Endor Labs** dringend zur Aktualisierung auf die Versionen 8.0.1 und 7.5.5, die einen Patch enthalten, der Typnamen bereinigt, indem nicht-alphanumerische Zeichen entfernt werden. Obwohl dieser Patch sofortige Linderung verschafft, schlägt **Endor Labs** eine robustere, langfristige Lösung vor, nämlich die vollständige Eliminierung der Verwendung von `Function` für für Angreifer erreichbare Bezeichner.
"Die Ausnutzung ist unkompliziert", warnt **Endor Labs** und verweist auf das minimale Proof-of-Concept (PoC), das im [Sicherheitsratgeber](https://github.com/protobufjs/protobuf.js/security/advisories/GHSA-xq3m-2v4x-88gg) enthalten ist. Derzeit gibt es keine Berichte über aktive Ausnutzung in freier Wildbahn.
### Offenlegungszeitplan
Die Schwachstelle wurde am 2. März vom **Endor Labs**-Forscher **Cristian Staicu** gemeldet. Die **protobuf.js**-Maintainer veröffentlichten am 11. März einen Patch auf GitHub. Aktualisierte **npm**-Pakete wurden am 4. April für den 8.x-Zweig und am 15. April für den 7.x-Zweig verfügbar gemacht.
### Empfehlungen
Neben der Aktualisierung empfiehlt **Endor Labs**:
* Überprüfung transitiver Abhängigkeiten.
* Behandlung des Ladens von Schemata als nicht vertrauenswürdige Eingabe.
* Bevorzugung von vorkompilierten/statischen Schemata in Produktionsumgebungen.
