Die Projektgraph-Analyzer der Nx-Plugins @nx/maven und @nx/gradle starten Prozesse über eine Shell und übernehmen Plugin-Optionen aus nx.json ungeprüft in Befehlsargumente. Ein Angreifer, der einen Benutzer oder CI-Job dazu bringt, nx in einem manipulierten Repository oder Pull Request auszuführen, kann beliebige Befehle mit den Rechten dieses Benutzers ausführen. Workspaces, die keines der beiden Plugins registrieren, sind nicht betroffen.
Nrwl · Nx
Das Paket @nx/docker des Monorepo-Werkzeugs Nx erstellt Docker-Tag-, Image-Suche- und Push-Befehle als Shell-Zeichenketten aus Konfigurationswerten des Releases. Ein Angreifer, der die Nx-Konfiguration verändern kann, zum Beispiel über einen Pull Request, kann während nx release version oder nx release publish beliebige Shell-Befehle ausführen. Diese Befehle laufen mit den Rechten des Release-Jobs und können Registry-Zugangsdaten oder Cloud-Token offenlegen.
Nrwl · @nx/docker
Nx erstellt Unix-Domain-Sockets für seinen Daemon und seine Plugin-Worker in gemeinsam genutzten temporären Verzeichnissen, ohne Berechtigungen nur für den Eigentümer. Ein lokales, unprivilegiertes Benutzerkonto auf demselben Host kann sich mit diesen Sockets verbinden, da sie keine Authentifizierung durchführen. Ein Angreifer kann dadurch Code als das Benutzerkonto ausführen, unter dem Nx läuft, und Workspace-Inhalte, Projektgraphen und Task-Hashes lesen; betroffen sind vor allem gemeinsam genutzte Build-Server, CI-Runner, Entwicklungsrechner und Multi-User-Container.
Nrwl · Nx