npm v12: Install-Scripts sind ab sofort standardmäßig deaktiviert — was das für Ihre CI bedeutet
npm v12 markiert einen der grössten Sicherheits-Kurswechsel im Ökosystem seit Jahren: allowScripts steht ab dieser Version standardmässig auf aus. preinstall-, install- und postinstall-Skripte sowie implizite node-gyp-Builds laufen nicht mehr automatisch beim npm install — genau der Mechanismus, über den ein Grossteil der npm-Supply-Chain-Würmer der letzten Jahre ausgeliefert wurde. Laut GitHub-Changelog ist das Release für Juli 2026 angekündigt, Warnungen laufen bereits seit npm 11.16.0. Wer jetzt nicht vorbereitet, riskiert kaputte CI-Pipelines am Tag des Upgrades.
Was ändert sich?
Mit npm v12 wird der bisherige Standard umgedreht: Install-Skripte aus Abhängigkeiten laufen nicht mehr automatisch, sondern nur noch nach expliziter Freigabe. Das betrifft preinstall, install, postinstall sowie implizite node-gyp-Builds (native Module). Zusätzlich werden prepare-Skripte aus Git-, File- und Link-Abhängigkeiten blockiert. Zwei verwandte, bereits seit Februar 2026 angekündigte Änderungen ziehen mit: Direkte oder transitive Git-Abhängigkeiten lösen ohne --allow-git nicht mehr auf (seit npm 11.10.0 verfügbar), und Abhängigkeiten aus Remote-Quellen wie HTTPS-Tarballs benötigen --allow-remote (seit npm 11.15.0 verfügbar).
Warum das wichtig ist
Install-Skripte sind seit Jahren der bevorzugte Ausführungspfad für npm-Supply-Chain-Malware — von klassischen Credential-Stealern bis zu selbstpropagierenden Würmern wie den in diesem Blog dokumentierten Fällen (binding.gyp/node-gyp-Missbrauch, IronWorm, Miasma). Ein Standardwert, der Skripte grundsätzlich abschaltet, verschiebt die Angriffsfläche massiv: Angreifer müssen zusätzlich Nutzer dazu bringen, ihr Paket explizit zu genehmigen, statt sich auf automatisches Ausführen bei npm install zu verlassen. Wichtig für die Einordnung: Das schliesst nicht alle Angriffsvektoren — der jscrambler-Vorfall vom 11. Juli 2026 (siehe unser separater Beitrag) zeigt, dass ab bestimmten Versionen Payloads auch ganz ohne Install-Hook, direkt beim Modul-Import, ausgeführt werden können. Install-Scripts-off ist damit eine wichtige, aber keine alleinige Verteidigungslinie.
Was Sie jetzt tun sollten
Vor dem Upgrade
# auf npm 11.16.0+ aktualisieren, um Warnungen zu sehen
npm install -g npm@11
npm --version
# zeigt, welche Pakete Install-Skripte mitbringen
npm approve-scripts --allow-git-pending
Vertrauenswürdige Pakete freigeben
# interaktiv auswählen, welche Pakete Skripte ausführen dürfen
npm approve-scripts
# Ergebnis landet in package.json — unbedingt versionieren/committen
CI-Pipelines vorbereiten
# explizit testen, ob der Build auch ohne automatische Skripte durchläuft
npm ci --ignore-scripts
# für native Module ggf. gezielten Build-Schritt ergänzen, statt auf postinstall zu setzen
Git-/Remote-Abhängigkeiten prüfen
# prüfen, ob package.json Git- oder Remote-URL-Abhängigkeiten referenziert
grep -E "git\+https|git://|https://.*\.tgz" package.json
# ggf. Flags ergänzen, wenn diese Abhängigkeiten legitim gebraucht werden
npm install --allow-git --allow-remoteHäufige Fragen zu npm v12
Wie gehe ich mit legitimen nativen Modulen um, die einen Build-Schritt brauchen?+
Über npm approve-scripts gezielt freigeben und das Ergebnis in package.json committen — so bleibt die Freigabe reproduzierbar und im Code-Review sichtbar, statt implizit zu laufen.
Schützt das vollständig vor npm-Supply-Chain-Angriffen?+
Nein. Es schliesst den häufigsten Ausführungspfad, aber neuere Angriffe (siehe jscrambler-Vorfall, Juli 2026) zeigen bereits Payloads, die beim Modul-Import statt über Install-Skripte laufen. Zusätzliche Kontrollen wie Version-Pinning und Egress-Filtering bleiben nötig.
Bricht das meine bestehende CI?+
Möglich, wenn Ihre Pipeline auf automatisch laufende postinstall-Skripte oder implizite node-gyp-Builds angewiesen ist. Testen Sie vorab mit npm ci --ignore-scripts und richten Sie eine Allowlist über npm approve-scripts ein.
Wann genau erscheint npm v12?+
Laut GitHub-Changelog für Juli 2026 angekündigt; Warnungen auf betroffene Pakete sind bereits seit npm 11.16.0 sichtbar. Ein exaktes Tagesdatum war zum Zeitpunkt dieses Beitrags nicht offiziell fixiert — vor dem produktiven Upgrade den npm-Blog/Changelog prüfen.
Fazit
npm v12 ist eine der grössten strukturellen Verbesserungen der npm-Sicherheit seit Langem — aber kein Freifahrtschein zum Abschalten der eigenen Wachsamkeit. Wer jetzt Lockfiles und CI-Pipelines auf implizite Install-Skripte prüft und eine bewusste Allowlist aufbaut, übersteht das Upgrade ohne Bruch und reduziert gleichzeitig die Angriffsfläche für den nach wie vor grössten Einzelvektor von npm-Supply-Chain-Vorfällen.
Quellen
Ich bereite Ihre CI-Pipelines auf npm v12 vor — Skript-Allowlist, Build-Anpassung, Regressionstest inklusive.
Audit Ihrer package.json/Lockfiles auf implizite Install-Skripte und Git-/Remote-Abhängigkeiten, Aufbau einer versionierten approve-scripts-Allowlist, Anpassung von CI-Build-Schritten für native Module.
Plattform-Betrieb statt Beratung auf Papier: Ich teste und härte Ihre npm-/CI-Pipeline gegen das v12-Upgrade und gegen laufende Supply-Chain-Risiken.
Über den Autor
![[Translate to English:] Foto von Kai Ole Hartwig.](/fileadmin/_processed_/e/9/csm_ole-neu_73323ad80d.jpeg)
Kai Ole Hartwig
Programming since 2002 – self-taught, set up my own business with KO-Web in 2012. Over 100 projects, with a focus on security, performance, automation and quality. Today freelance: DevSecOps consulting, training and software development.