Node.js ist eine quelloffene, plattformübergreifende JavaScript-Laufzeitumgebung, die auf der leistungsstarken V8-Engine von Chrome basiert. Sie ermöglicht die Ausführung von JavaScript-Code außerhalb eines Webbrowsers und ist daher für die Entwicklung von Echtzeitanwendungen und Datenstreaming-Diensten sehr beliebt. Doch wie jede Software ist auch sie nicht vor Sicherheitslücken gefeit. Kürzlich wurden mehrere Schwachstellen in Node.js entdeckt, die zur Umgehung von Richtlinienmechanismen oder zur Ausweitung von Berechtigungen führen können. Glücklicherweise wurden diese Schwachstellen in den jüngsten Ubuntu-Sicherheitsupdates behoben.
Node.js-Sicherheitslücken im jüngsten Update behoben
CVE-2023-32002
Die Module._load()
Funktion wurde festgestellt, dass sie in der Lage ist, den Policy-Mechanismus zu umgehen und Module außerhalb der in der policy.json-Datei für ein bestimmtes Modul bereitgestellten Definitionen zu verlangen. Diese Sicherheitslücke betrifft alle Benutzer, die den Policy-Mechanismus in allen aktiven Node.js-Release-Linien verwenden: 16.x, 18.x und 20.x. Ein Angreifer könnte diese Schwachstelle ausnutzen, indem er einen Benutzer oder ein automatisiertes System dazu verleitet, eine speziell gestaltete Eingabedatei zu öffnen und so den Richtlinienmechanismus zu umgehen.
CVE-2023-32006
Ähnlich wie bei CVE-2023-32002 ist die module.constructor.createRequire()
Funktion kann auch den Policy-Mechanismus umgehen und die Anforderung von Modulen außerhalb der policy.json-Definitionen ermöglichen. Diese Schwachstelle betrifft alle Benutzer, die den Policy-Mechanismus in den Node.js-Versionen 16.x, 18.x und 20.x verwenden. Wenn ein Benutzer oder ein automatisiertes System eine speziell gestaltete Eingabedatei öffnet, kann ein entfernter Angreifer dieses Problem ausnutzen, um den Policy-Mechanismus zu umgehen.
CVE-2023-32559
Es gibt eine Schwachstelle in Node.js, die alle aktiven Release-Linien (16.x, 18.x und 20.x) betrifft, die eine Privilegienerweiterung ermöglicht. Die veraltete API process.binding()
können verwendet werden, um den Richtlinienmechanismus zu umgehen, indem interne Module benötigt werden, die letztlich die process.binding('spawn_sync')
um beliebigen Code außerhalb der in einer policy.json-Datei definierten Grenzen auszuführen.
CVE-2023-30590
Die Node.js-Dokumentation beschreibt die generateKeys()-Funktion falsch, was zu potenziellen Sicherheitsproblemen in Anwendungen führt, die diese APIs verwenden. Diese Schwachstelle ist zwar nicht direkt ausnutzbar wie die anderen, könnte aber dazu führen, dass Entwickler unsichere Lösungen auf Basis einer falschen Dokumentation implementieren.
CVE-2023-23920
Es wurde festgestellt, dass Node.js bestimmte Eingaben nicht korrekt behandelt, was zu einer nicht vertrauenswürdigen Suchpfad-Schwachstelle führt. Diese Schwachstelle könnte es einem Angreifer ermöglichen, nach ICU-Daten zu suchen und diese möglicherweise zu laden, während er mit erhöhten Rechten arbeitet.
Abmilderung der Risiken
Das Ubuntu-Sicherheitsteam hat Updates veröffentlicht, um Node.js-Schwachstellen in verschiedenen Ubuntu-Versionen zu beheben, darunter 23.10, 22.04 LTS, 20.04 LTS und 18.04 ESM. Um Ihre Node.js-Umgebung zu schützen, ist es wichtig, Ihre Node.js-Installation auf die neueste verfügbare Version zu aktualisieren.
Wenn Sie sicherstellen, dass Ihre Node.js-Installation auf dem neuesten Stand ist, schützen Sie sich nicht nur vor diesen spezifischen Schwachstellen, sondern auch vor allen zukünftigen entdeckten Sicherheitsproblemen.
In den letzten Monaten haben mehrere öffentlichkeitswirksame Schwachstellen, darunter eine Schwachstelle in GitLab, die CI/CD-Pipelines betrifft, die Notwendigkeit rechtzeitiger Patches und proaktiver Sicherheitspraktiken für alle Entwicklungsplattformen noch deutlicher gemacht.
Schlussfolgerung
Node.js ist ein leistungsfähiges Werkzeug für Entwickler, aber wie jede Technologie erfordert es regelmäßige Wartung und Updates, um sicher zu bleiben. Die kürzlich vom Ubuntu-Sicherheitsteam entdeckten und gepatchten Schwachstellen zeigen, wie wichtig es ist, bei der Softwareverwaltung wachsam und proaktiv zu sein. Indem Sie Ihre Node.js-Installationen umgehend aktualisieren, können Sie Ihre Anwendungen und Systeme vor potenziellen Angriffen schützen und ein sicheres und widerstandsfähiges System aufrechterhalten.
Ziehen Sie außerdem Live-Patching in Betracht, um Ihre Ubuntu-Systeme ohne Ausfallzeiten zu schützen. Im Gegensatz zu herkömmlichen Patching-Methoden können beim Live-Patching kritische Sicherheitspatches ohne Neustart auf einen laufenden Kernel angewendet werden. Dieser Ansatz führt zu minimalen Ausfallzeiten für Ihr System und gewährleistet dessen kontinuierlichen Betrieb bei gleichzeitiger Verbesserung der Sicherheitslage.
TuxCare's KernelCare Enterprise bietet automatisiertes Live-Patching für alle wichtigen Linux-Distributionen, einschließlich Ubuntu, Debian, RHEL, CentOS, AlmaLinux, Rocky Linux, Oracle Linux, Amazon Linux und mehr.
Schicken Sie Fragen zum Patching an einen TuxCare-Sicherheitsexperten, um mehr über die Modernisierung Ihres Linux-Patching-Ansatzes zu erfahren.
Quelle: USN-6822-1, USN-6735-1


