undici vulnerable to Denial of Service via unhandled exception in the decompress interceptor
Veröffentlicht
Was ist betroffen, was ist zu tun
undici ist eine HTTP-Client-Bibliothek für Node.js. In den Versionen 7.15.0 bis 7.30.0 und 8.0.0 bis 8.12.1 leitet der Decompress-Interceptor die dekomprimierten Antwortdaten an den Downstream-Handler weiter, ohne die Ausnahmen abzufangen, die von den Callbacks des zlib-Streams geworfen werden können.
Die vorliegenden Quellen nennen keine Fix-Version. Prüfen Sie die Herstellerhinweise in den Referenzen unten.
Unklar, ob und wie Sie betroffen sind? Frage zu dieser Schwachstelle stellen
Metriken
—
Priorität
Für diese Schwachstelle liegt kein Wert vor.
—
CVSS v3
Für diese Schwachstelle liegt kein Wert vor.
—
EPSS-Score
Für diese Schwachstelle liegt kein Wert vor.
Alle Metriken anzeigen
- Schweregrad
- Ohne Bewertung
Priority-Score
Der Priorisierungs-Score ist eine zusammengeführte Kennzahl, die mehrere Einzelsignale zu einer einzigen, handlungsleitenden Rangfolge verdichtet: technische Schwere (CVSS), Ausnutzungswahrscheinlichkeit (EPSS), der Status als bekannt ausgenutzt (KEV) und der Kontext des betroffenen Assets. Ziel ist die Antwort auf die einzig wirklich wichtige Frage im Schwachstellenmanagement: Was zuerst?
Im Glossar lesen- 30.00
Exploit-Reife
Ein Exploit ist Code oder eine Technik, die eine konkrete Schwachstelle gezielt ausnutzt, um ein unbeabsichtigtes Verhalten zu erzwingen — etwa Code auszuführen oder Rechte auszuweiten. Er ist das Werkzeug, das aus einer theoretischen Lücke einen praktischen Angriff macht.
Im Glossar lesen- kein öffentlicher PoC bekannt
KEV-Status
Der KEV-Katalog ist eine von der US-Behörde CISA gepflegte Liste von Schwachstellen, für die eine aktive Ausnutzung in der Praxis nachgewiesen ist. Er beantwortet nicht die Frage „wie schwer?“, sondern „wird es bereits angegriffen?“ — und priorisiert damit das Patchen scharf.
Im Glossar lesen- —
- Veröffentlicht
Einordnung nach NIS2 und CRA
Regelbasierte Einordnung aus Ausnutzungsstatus und Schweregrad. Sie ersetzt keine Prüfung im Einzelfall.
NIS2
NIS2 ist die EU-Richtlinie (EU) 2022/2555 zur Erhöhung des Cybersicherheitsniveaus in der Union. Sie weitet Pflichten gegenüber der ersten NIS-Richtlinie deutlich aus: mehr Sektoren, verbindliches Risikomanagement, gestufte Meldepflichten und persönliche Verantwortung der Geschäftsleitung.
Im Glossar lesen- Behandeln Sie die Schwachstelle im regulären Schwachstellenmanagement nach Art. 21 Abs. 2 lit. e NIS2.
CRA
Der CRA ist die EU-Verordnung (EU) 2024/2847 mit horizontalen Cybersicherheitsanforderungen an „Produkte mit digitalen Elementen“ — von Industriesteuerungen über Software bis zu vernetzten Verbrauchergeräten. Erstmals müssen Hersteller Sicherheit über den gesamten Produktlebenszyklus gewährleisten, Schwachstellen behandeln und Sicherheitsupdates bereitstellen.
Im Glossar lesen- Ab dem 11.12.2027 verpflichtet Anhang I Teil II CRA Hersteller betroffener Produkte mit digitalen Elementen, Schwachstellen unverzüglich zu behandeln und Sicherheitsupdates bereitzustellen.
ISO/IEC 27001
ISO/IEC 27001 ist der international führende Standard für ein Informationssicherheits-Managementsystem (ISMS). Er beschreibt einen risikobasierten, prozessorientierten Rahmen, um Informationssicherheit systematisch zu planen, umzusetzen, zu überprüfen und zu verbessern.
Im Glossar lesen- Maßnahme A.8.8, Management technischer Schwachstellen: Relevanz für Ihre Systeme bewerten, Behebung einplanen und nachweisen.
Beschreibung
undici ist eine HTTP-Client-Bibliothek für Node.js. In den Versionen 7.15.0 bis 7.30.0 und 8.0.0 bis 8.12.1 leitet der Decompress-Interceptor die dekomprimierten Antwortdaten an den Downstream-Handler weiter, ohne die Ausnahmen abzufangen, die von den Callbacks des zlib-Streams geworfen werden können. Während das Engine von undici einen synchronen Throw von einem Downstream-Handler in einen pro-Anfrage-Fehler umwandelt, fehlt diese Schutzmaßnahme, wenn der Throw asynchron aus einem zlib-Callback erfolgt. Dadurch kann ein Downstream-Handler, der absichtlich einen Throw auslöst, wie der eingebaute dump-Interceptor, der einen Throw auslöst, wenn eine Antwort die konfigurierte maximale Größe überschreitet, als unerfasste Ausnahme entkommen, die den Node.js-Prozess beendet. Ein böswilliger oder kompromittierter HTTP-Server kann einen Client zum Absturz bringen, der den Decompress-Interceptor mit einem solchen Handler zusammensetzt, indem er einen kleinen komprimierten Body zurückgibt, der sich bei der Dekomprimierung über die konfigurierte Grenze hinaus ausdehnt, so dass nur die dekomprimierte Größe zählt und die Bytes im Netzwerk klein bleiben. Das Problem ist in undici 7.30.1 und 8.12.2 behoben, und Benutzer sollten auf eine dieser Versionen oder eine spätere aktualisieren. Als Workaround sollten Sie vermeiden, den Decompress-Interceptor mit einem Antwort-Handler zu kombinieren, der während der Verarbeitung der Antwort einen Throw auslöst, bis Sie aktualisiert haben.
Originalquelle nur englisch verfügbar, maschinell ins Deutsche übersetzt.