Hauptanalyse
Sicherheit & Risiko5 Min.

Gzip-Bombe in node-tar verursacht kritischen Fehler (CVSS 9.2) für Node.js-Pipelines

Sala de servidores madrugada com rack aberto, LEDs âmbar de alerta e laptop com terminal vermelho aberto sobre a bandeja de cabos.

CVE-2026-59873 ermöglicht das Auslasten von CPU und Speicherplatz mit einem kleinen Tarball. Die Bibliothek erzielt wöchentlich 106 Millionen Downloads über npm und stützt einen großen Teil der JavaScript-Build-Kette.

Die Bibliothek node-tar, eine der am weitesten verbreiteten Abhängigkeiten im JavaScript-Ökosystem, erhielt am 12. Juli die Registrierung CVE-2026-59873, die im GitHub Advisory Database mit CVSS 9.2 eingestuft wurde. Der Fehler liegt in den Extraktions- und Parsing-Pfaden in src/extract.ts: Keine Version vor 7.5.19 wendet strikte Limits für die Gesamtgröße, die Anzahl der Eingaben oder die Kompressionsrate an. Eine sorgfältig gestaltete Gzip-Bombe reicht aus, um CPU und Speicherplatz des Prozesses, der die Datei öffnet, völlig auszureizen.


Das Ausmaß der Schäden hängt vom Nenner ab. Das Paket tar auf npm verzeichnet laut Snyk wöchentlich 106,4 Millionen Downloads, was es zu einer der am häufigsten verwendeten Unterstützungsbibliotheken im Register macht. Ein großer Teil davon stammt von CI/CD-Pipelines, die npm install von Grund auf ausführen, aber das Volumen zeigt die Angriffsfläche: Wo Node Dateien verarbeitet, die verpackt sind, gibt es fast mit Sicherheit auch node-tar im Hintergrund.


Was der Fehler bewirkt


Das Exploitation-Muster ist der klassische DoS über komprimierte Dateien: Ein Tarball von wenigen Kilobytes, der beim Entpacken Gigabyte an RAM und Speicher verbraucht. In Laufzeiten, die Entpackungen als Teil von Deployments oder Builds durchführen, wird der Unterschied zwischen einer gesunden Pipeline und einem nicht reagierenden Pod zur Frage, welches Paket zuletzt über das Band lief. Die für den Fall angewandte CWE-770-Klassifizierung beschreibt die Kategorie: Ressourcenallokation ohne Limits oder Drosselung. Es handelt sich um einen Fehler, der häufig zu Störungen in SREs führt.


Am selben Tag kamen zwei weitere verwandte CVEs an. CVE-2026-59874, mit CVSS 8.7, betrifft tar.replace: Ein Header mit gültiger Prüfziffer, aber negativ codierte Größe in Basis-256 lässt den Dateiscanner stehen bleiben und denselben Header immer wieder lesen, ohne Fortschritt. Es handelt sich um eine Endlosschleife ohne Ausgang, katalogisiert in CWE-835, und in 7.5.18 behoben. CVE-2026-59871 bricht den Prozess durch Typverwirrung in numerischen PAX-Headern und ermöglicht es, den Dienst über ein fehlerhaftes Tarball zum Absturz zu bringen.


Warum das außerhalb des Bugtrackers wichtig ist


Das tatsächliche Risiko von node-tar verlässt den Bugtracker, wenn man betrachtet, wo die Bibliothek eingesetzt wird. In CI/CD-Pipelines, die Tarballs aus halb vertrauenswürdigen Quellen herunterladen und entpacken, in Multi-Tenant-PaaS-Umgebungen, die Uploads von Kunden öffnen, und in Infrastrukturtools, die verpackte Artefakte konsumieren, ist der Vektor immer derselbe: Jemand sendet einen Tarball, jemand extrahiert, jemand friert ein. Ohne die Dekompressionsobergrenze, die in 7.5.19 eingeführt wurde, kann eine einzige bösartige Datei die Worker eines gesamten Clusters bis zur Erschöpfung der Ressourcen lahmlegen.


Das Team von node-tar hat bereits 7.5.19 mit den Sicherheitsverbesserungen der Limits und 7.5.18 veröffentlicht, die die Schleife in replace schließt. Allerdings ist das Fenster der Exposition der Zeitraum zwischen dem Fix-Commit und dem Moment, in dem der Build die Abhängigkeitsstruktur neu aufbaut. In vielen Unternehmensumgebungen, die aggressives Pinning und eine monatliche Patch-Politik verwenden, überschreitet dieser Zeitraum oft Wochen.


Das Muster seit Januar


Die Frequenz von CVEs in der Bibliothek ist im Jahr 2026 gestiegen. Im Januar hatte CVE-2026-23745 node-tar bereits auf 7.5.3 gezwungen, weil die Bibliothek versagte, den Linkpath in Hardlink- und Symlink-Eingaben zu bereinigen, wodurch es möglich war, Dateien außerhalb des Extraktionsverzeichnisses zu überschreiben. In diesem Fall war die npm CLI selbst geschützt, da sie Link und SymbolicLink von den installierten Paketen filtert. Aber jede interne Pipeline, die Tar über unzuverlässige Eingaben ausführte, war bis zum Update anfällig. Das Advisory von GitHub für diese CVE listete Tausende abhängiger Projekte auf.


Unternehmen, die nur signierte Tarballs interner Artefakte konsumieren, bleiben relativ sicher. Wer Dateien verarbeitet, die von Benutzern eingereicht werden, Datenaggregatoren, Integrationen mit Lieferanten und öffentlichen Inhalten, steht jedoch in der ersten Reihe, da die Ausnutzung keine Authentifizierung erfordert und keinen ausgeklügelten Payload benötigt. Es ist ratsam, das Update zusammen mit dem nächsten Build-Zyklus zu planen, zu überprüfen, wo die Extraktion ohne zeitliche oder räumliche Limits erfolgt, die extern zum Prozess konfiguriert sind, und für PaaS-Betreiber, die Dateiuploads akzeptieren, Isolierung in cgroups oder wegwerfbaren Containern für die Extraktionsoperation in Betracht zu ziehen.


Diese Art von CVE sorgt außerhalb der AppSec-Kreise nicht für Schlagzeilen, kann aber für diejenigen, die Integrationen betreiben, zu einem Vorfall werden. Die praktische Empfehlung lautet, die Pipelines zu überprüfen, die jede komprimierte Datei von extern verarbeiten, zu kartieren, wo node-tar indirekt importiert wird, und ein Update auf 7.5.19 zu fordern, bevor die automatischen Scanner beginnen, den Fehler in den Risikodashboards der Lieferanten aufzulisten.

Hauptanalyse