Sicherheitsanfälligkeiten in Node.js und libuv

Es sind korrigierte Versionen der Server-JavaScript-Plattform Node.js 21.6.2, 20.11.1, 18.19.1 verfügbar, in denen 8 Sicherheitsanfälligkeiten behoben wurden, von denen 4 als hochgefährlich eingestuft sind:

  • CVE-2024-21892 – Die Möglichkeit für nicht privilegierte Benutzer, Code einzuschleusen, der erweiterte Berechtigungen erbt, mit denen der Arbeitsablauf durchgeführt wird. Die Schwachstelle wird durch einen Fehler in der Implementierung einer Ausnahme verursacht, die es erlaubt, Umgebungsvariablen, die von nicht privilegierten Benutzern festgelegt wurden, im Kontext erweiterter Berechtigungen zu verarbeiten. Die Ausnahme hätte nur für die Berechtigung CAP_NET_BIND_SERVICE erteilt werden sollen, wurde aber aufgrund eines Fehlers auch auf einige andere Berechtigungen angewendet.
  • CVE-2024-22019 – Denial of Service durch Erschöpfung der verfügbaren Ressourcen (CPU-Last und Bandbreitennutzung) bei der Verarbeitung speziell gestalteter chunked-Anfragen durch den eingebauten HTTP-Server, was zu einer unbegrenzten Anzahl von Byte-Lesungen in einer Verbindung führt.
  • CVE-2024-21896 – Übergreifen auf das Basisverzeichnis in Datei-Pfaden. Die Schwachstelle ermöglicht es, die Normalisierung von Datei-Pfaden mittels path.resolve() zu umgehen, wenn ein Pfad mit der Buffer-Klasse übergeben wird. Um einen solchen Pfad zu erhalten, wird nach der Überprüfung die Methode Buffer.from() aufgerufen, im Anwendungskontext kann jedoch die Methode Buffer.prototype.utf8Write verwendet werden, was zu einer Ersetzung des Inhalts nach der Ausführung von path.resolve() und zur Entstehung der Schwachstelle führt.
  • CVE-2024-22017 – Der Aufruf von setuid() setzte nicht alle Berechtigungen zurück. Insbesondere hat setuid() keinen Einfluss auf 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 zur Entschlüsselung von RSA basierend auf der Zeitmessung von Operationen zulässt.
  • CVE-2024-21891 – Die Möglichkeit, das Berechtigungsmodell zu umgehen, bei der Verwendung von benutzerdefinierten Handlern zur Normalisierung von Datei-Pfaden.
  • CVE-2024-21890 – Falsche Behandlung von Masken in den Parametern „—allow-fs-read“ und „—allow-fs-write“. Zum Beispiel wird „—allow-fs-read=\/home\/node\/.ssh\/*.pub“ den Zugriff auf den gesamten Inhalt von „.ssh\/“ gewähren, 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 Ressourcenausnutzung beim Dekodieren von komprimierten Brotli-Daten, die über den fetch()-Aufruf empfangen wurden.

Zusätzlich kann die Veröffentlichung der Bibliothek libuv 1.48.0 erwähnt werden, die in Node.js für die Multiplexierung 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, dem HTTP-Server H2O sowie im Lua-Framework Luvit verwendet. virtuellen Maschine MoarVM, die Programmiersprache Julia und das Python-Framework uvloop profitieren ebenfalls von dieser neuen Version, die eine Schwachstelle (CVE-2024-24806) behebt, die in Projekten auftritt, die libuv verwenden, und eine SSRF-Attacke (Server-side Request Forgery) ermöglicht, um Zugriff auf die interne API zu erlangen. Die Schwachstelle entstand durch das Abkürzen des Hostnamens durch die Funktion uv_getaddrinfo() auf 256 Zeichen, bevor die Domain durch die Funktion getaddrinfo() aufgelöst wird, was zur falschen Bestimmung führen kann. IP-Adressen und zur Umgehung von Prüfungen. Dienste wie MySpace, die Subdomains in der Form 'username.example.com' erstellen, könnten 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, das eine Schwachstelle (CVE-2024-24758) behebt, die durch fehlende Bereinigung des HTTP-Headers Proxy-Authorization bei der Umleitung von Anfragen verursacht wurde.

Quelle: opennet.ru

Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server 🔥 Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster