Sicherheitsanfälligkeit in NPM, die zu einer Dateiüberschreibung im System führt.

Das Unternehmen GitHub hat Details zu sieben Sicherheitsanfälligkeiten in den tar-Paketen und @npmcli/arborist veröffentlicht, die Funktionen zum Arbeiten mit tar-Archiven und zur Berechnung von Abhängigkeitsbäumen in Node.js bereitstellen. Diese Schwachstellen ermöglichen es, beim Entpacken eines speziell gestalteten Archivs Dateien außerhalb des Zielverzeichnisses zu überschreiben, abhängig von den aktuellen Berechtigungen. Die Probleme eröffnen die Möglichkeit, schadhafter Code im System auszuführen, beispielsweise durch Hinzufügen von Befehlen zu ~/ .bashrc oder ~/ .profile bei der Ausführung durch einen nicht privilegierten Benutzer oder bei der Ersetzung von Systemdateien mit Root-Rechten.

Die Gefahr von Sicherheitsanfälligkeiten wird dadurch verstärkt, dass problematischer Code im Paketmanager npm bei der Arbeit mit npm-Paketen verwendet wird. Dies ermöglicht es, einen Angriff auf Benutzer zu organisieren, indem ein speziell gestaltetes npm-Paket in ein Repository hochgeladen wird, bei dessen Verarbeitung der Schadcode des Angreifers im System ausgeführt wird. Ein Angriff ist sogar bei der Installation von Paketen im "--ignore-scripts"-Modus möglich, der die Ausführung von eingebetteten Skripten deaktiviert. Insgesamt betrifft npm vier Sicherheitsanfälligkeiten (CVE-2021-32804, CVE-2021-37713, CVE-2021-39134 und CVE-2021-39135) von sieben. Die ersten beiden Probleme betreffen das Paket tar, während die anderen beiden das Paket @npmcli/arborist betreffen.

Die am weitesten verbreitete Schwachstelle CVE-2021-32804 entsteht dadurch, dass beim Bereinigen der im Tar-Archiv angegebenen absoluten Pfade wiederholte „/“-Symbole nicht korrekt verarbeitet werden – nur das erste Zeichen wird entfernt, die weiteren bleiben erhalten. Zum Beispiel wird der Pfad „/home/user/.bashrc“ in „home/user/.bashrc“ umgewandelt, während der Pfad „//home/user/.bashrc“ in „/home/user/.bashrc“ umgewandelt wird. Die zweite Schwachstelle CVE-2021-37713 tritt nur auf der Windows-Plattform auf und hängt mit einer unzureichenden Bereinigung relativer Pfade zusammen, die ein nicht getrenntes Laufwerkssymbol („C:some\path“) und eine Sequenz zur Rückkehr in das vorherige Verzeichnis („C:../foo“) enthalten.

Die Schwachstellen CVE-2021-39134 und CVE-2021-39135 sind spezifisch für das Modul @npmcli/arborist. Das erste Problem tritt nur auf Systemen auf, die zwischen Groß- und Kleinschreibung im Dateisystem nicht unterscheiden (macOS und Windows), und erlaubt es, Dateien an beliebigen Stellen im Dateisystem zu speichern, indem zwei Module in den Abhängigkeiten angegeben werden: ‘»foo»: «file:/some/path»‘ und ‘FOO: «file:foo.tgz»‘, deren Verarbeitung zur Löschung des Inhalts des Verzeichnisses /some/path und zum Schreiben des Inhalts von foo.tgz führt. Das zweite Problem ermöglicht das Überschreiben von Dateien durch Manipulation von symbolischen Links.

Sicherheitsanfälligkeiten wurden in den Versionen Node.js 12.22.6 und 14.17.6, npm CLI 6.14.15 und 7.21.0 sowie in einzelnen Versionen des Pakets tar 4.4.19, 5.0.11 und 6.1.10 behoben. Im Rahmen der "Bug Bounty"-Initiative hat GitHub den Forschern 14.500 $ ausgezahlt und den Inhalt des Repositories gescannt, wobei keine Versuche zur Ausnutzung von Schwachstellen festgestellt wurden. Um sich vor diesen Problemen zu schützen, hat GitHub außerdem ein Verbot für die Veröffentlichung von NPM-Paketen in Repositories eingeführt, die symbolische Links, harte Links und absolute Pfade enthalten.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster