Eine Sicherheitslücke im NPM-Paket node-ip für Node.js wurde entdeckt, die es ermöglicht, dass einige private IP-Adressen fälschlicherweise als öffentlich kategorisiert werden. Diese Schwachstelle, die unter CVE-2023-42282 gemeldet und nicht vollständig behoben wurde, bleibt in den Versionen bis einschließlich 2.0.1 bestehen. Die unvollständige Behebung dieser Schwachstelle führte zur neuen Kennung CVE-2024-29415.
Das Node-ip-Paket, das häufig in Node.js-Anwendungen zur Verarbeitung und Validierung von IP-Adressen verwendet wird, enthält eine Funktion namens isPublic()
. Diese Funktion soll feststellen, ob eine IP-Adresse global routbar ist. Aufgrund der unvollständigen Behebung von CVE-2023-42282 identifiziert die Funktion jedoch weiterhin einige private IP-Adressen als öffentlich. Dies kann zu Server-Side Request Forgery (SSRF)-Angriffen führen, wenn diese Funktion verwendet wird, um ausgehende Netzwerkanforderungen zu überprüfen.
Folgende IP-Adressen werden fälschlicherweise als öffentlich erkannt:
- 127.1
- 01200034567
- 012.1.2.3
- 000:0:0000::01
- ::fFFf:127.0.0.1
Die Schwachstelle betrifft folgende Installationen des node-ip-Pakets:
- Buster: 1.1.5-3
- Bullseye: 1.1.5-5
- Bookworm: 2.0.0+~1.1.0-1
- Sid, Trixie: 2.0.1+~1.1.3-1
Ein erfolgreicher SSRF-Angriff kann es einem Angreifer ermöglichen, unerwünschte Aktionen durchzuführen, indem er interne Systeme über manipulierte Netzwerkanforderungen ansteuert. Dies könnte beispielsweise dazu führen, dass ein Angreifer Zugriff auf interne Dienste erhält oder sensible Daten extrahiert.
Da das node-ip-Paket derzeit nicht aktiv gewartet wird und der Autor nicht auf Anfragen reagiert, wird dringend empfohlen, alternative Pakete mit ähnlichen Funktionen zu verwenden. Selbst wenn Ihre derzeitige Nutzung des node-ip-Pakets nicht direkt betroffen ist, bieten Alternativen eine bessere Unterstützung und verringern das Risiko zukünftiger Sicherheitslücken.
Falls Sie das node-ip-Paket weiterhin verwenden müssen, überprüfen Sie sorgfältig die Nutzung der Funktionen isPublic()
, isPrivate()
und isLoopback()
, insbesondere wenn diese zur Überprüfung sensibler Netzwerkanforderungen eingesetzt werden. Befolgen Sie außerdem die Richtlinien zur Verhinderung von SSRF-Angriffen, wie sie im OWASP Cheat Sheet beschrieben sind.
Obwohl ein Patch vorgeschlagen wurde (siehe Pull Request #144 auf GitHub), wurde dieser bisher nicht implementiert. Nutzer sollten die GitHub-Seite des Projekts im Auge behalten, um über mögliche zukünftige Updates informiert zu bleiben.
Professionelle Hilfe erwünscht?
Sentiguard ist spezialisiert auf Notfallhilfe nach Cyberattacken, IT Sicherheitsbeauftragte und IT Sicherheitskonzepte nach BSI Standard. Haben Sie Fragen und wünschen Sie unverbindliche Beratung, dann melden Sie sich gerne bei uns: