Korrigierte Versionen der Server-JavaScript-Plattform Node.js 21.6.2, 20.11.1, 18.19.1 sind verfügbar, in denen 8 Schwachstellen behoben wurden, von denen 4 als hochriskant eingestuft sind:
- CVE-2024-21892 — die Möglichkeit für einen nicht privilegierten Benutzer, Code einzuschleusen, der die erweiterten Privilegien erbt, mit denen der Arbeitsprozess ausgeführt wird. Die Schwachstelle wird durch einen Fehler in der Ausnahmebehandlung verursacht, der es erlaubt, Umgebungsvariablen, die von nicht privilegierten Benutzern festgelegt wurden, während des Prozesses mit erweiterten Privilegien zu verarbeiten. Die Ausnahme sollte nur für die Berechtigungen CAP_NET_BIND_SERVICE bereitgestellt werden, wurde aber aufgrund eines Fehlers auch auf einige andere Berechtigungen angewendet.
- CVE-2024-22019 — Denial of Service durch Erschöpfung verfügbarer Ressourcen (CPU-Last und Bandbreitenverbrauch) beim Verarbeiten von speziell gestalteten chunked-Anfragen durch den eingebetteten HTTP-Server, die zu einem unbegrenzten Lesen von Bytes in einer Verbindung führen.
- CVE-2024-21896 — Überschreiten des Basisverzeichnisses in Dateipfaden. Die Schwachstelle ermöglicht es, die Normalisierung von Dateipfaden durch path.resolve() zu umgehen, wenn der Pfad unter Verwendung der Buffer-Klasse übergeben wird. Um zu einem ähnlichen Pfad zu gelangen, wird nach der Überprüfung die Methode Buffer.from() aufgerufen, aber die Anwendung kann den Aufruf Buffer.prototype.utf8Write verwenden, der den Inhalt nach der Ausführung von path.resolve() ändert und die Schwachstelle verursacht.
- CVE-2024-22017 — Der Aufruf von setuid() hat nicht alle Privilegien zurückgesetzt. Insbesondere beeinflusst setuid() keine io_uring-Operationen, die in libuv verwendet werden, wenn sie vor dem Aufruf von setuid() initialisiert wurden.
- CVE-2023-46809 — eine Schwachstelle in der API privateDecrypt(), die einen Marvin-Angriff für die Zeitmessung von RSA-Entschlüsselungsoperationen ermöglicht.
- CVE-2024-21891 — die Möglichkeit, das Zugriffssteuerungsmodell bei der Verwendung benutzerdefinierter Handler für die Normalisierung von Dateipfaden zu umgehen.
- CVE-2024-21890 — fehlerhafte Behandlung von Masken in den Parametern „—allow-fs-read“ und „—allow-fs-write“. Zum Beispiel führt „—allow-fs-read=/home/node/.ssh/*.pub“ dazu, dass auf den gesamten Inhalt von „.ssh/“ zugegriffen wird, und nicht nur auf Dateien mit der Endung „.pub“, da die Maske „*“ als letztes Element des Pfades behandelt wird.
- CVE-2024-22025 — Denial of Service durch Erschöpfung von Ressourcen beim Dekodieren von komprimierten Daten im Brotli-Format, die über einen fetch()-Aufruf erhalten wurden.
Zusätzlich ist die Veröffentlichung der Bibliothek libuv 1.48.0 zu erwähnen, die in Node.js für das Multiplexing von Verbindungen und die asynchrone Verarbeitung von Ein-/Ausgaben verwendet wird. Neben Node.js wird die Bibliothek auch in den DNS-Servern BIND 9 und Knot DNS, im HTTP-Server H2O, im Lua-Framework Luvit, MoarVM, der Programmiersprache Julia und im Python-Framework uvloop verwendet. In der neuen Version wurde eine Schwachstelle (CVE-2024-24806) behoben, die in Projekten auftritt, die libuv verwenden, und einen SSRF-Angriff (Server-side request forgery) ermöglicht, um Zugang zur internen API zu erhalten. Die Schwachstelle entstand durch das Kürzen des Hostnamens durch die Funktion uv_getaddrinfo() auf 256 Zeichen in der Phase vor der Auflösung des Domains über die Funktion getaddrinfo(), was zur Erkennung eines falschen und zum Umgehen der Überprüfungen führen kann. Beispielsweise können Dienste wie MySpace, die Subdomains im Format „username.example.com“ erstellen, durch Eingabe eines langen Benutzernamens angegriffen werden. virtuellen Maschine Es gab auch ein Update für den in Node.js verwendeten HTTP-Client und undici 5.28.3, in dem eine Schwachstelle (CVE-2024-24758) behoben wurde, die durch das Fehlen der Säuberung des HTTP-Headers Proxy-Authorization beim Weiterleiten von Anfragen verursacht wurde. IP-Adressen und Umgehungen von Prüfungen. Beispielsweise können Dienste wie MySpace, die Subdomains im Format „username.example.com“ erstellen, durch die Angabe eines langen Benutzernamens angegriffen werden.
Außerdem wurde ein Update des in Node.js verwendeten HTTP-Clients undici 5.28.3 veröffentlicht, in dem eine Sicherheitsanfälligkeit (CVE-2024-24758) behoben wurde, die durch das Fehlen der Bereinigung des HTTP-Headers Proxy-Authorization bei der Weiterleitung von Anfragen verursacht wurde.
Quelle: opennet.ru
