npm 12 deaktiviert Installationsskripte standardmäßig
npm 12 deaktiviert Installationsskripte standardmäßig, um Supply-Chain-Angriffe zu erschweren. Erfahren Sie, was sich für Entwickler ändert und wie Sie …

Warum npm 12 Installationsskripte jetzt blockiert

GitHub hat offiziell die Freigabe von npm Version 12 bekannt gegeben. Die wichtigste Änderung: Installationsskripte sind standardmäßig deaktiviert. Das betrifft vor allem preinstall, install und postinstall-Skripte in Paketen. Bisher liefen diese automatisch – ein Einfallstor für Angreifer, die bösartigen Code in beliebte Pakete einschleusen.
Stell dir vor, du installierst ein harmloses Tool, und im Hintergrund wird ein Skript ausgeführt, das deine Umgebungsvariablen ausliest. Genau das soll npm 12 unterbinden. Die Option allowScripts steht nun standardmäßig auf off. Nur wenn du explizit zustimmst, dürfen Skripte laufen.
Was sich für deine tägliche Arbeit ändert

Wenn du npm install ausführst, wirst du künftig eine Warnung sehen, falls ein Paket Skripte ausführen will. Du kannst dann entscheiden, ob du sie für dieses eine Paket oder global erlauben möchtest. Das klingt nach mehr Klicks, aber die Sicherheit gewinnt enorm.
Einige Build-Tools oder Pakete wie node-gyp benötigen jedoch Skripte. Für solche Fälle gibt es die neue Konfiguration --ignore-scripts – oder du setzt allowScripts in deiner .npmrc zurück. Aber Vorsicht: Damit machst du das alte Verhalten wieder aktiv.
Die Maßnahme ist ein klares Signal: Die Ära der blinden Skriptausführung ist vorbei. Das Risiko von Supply-Chain-Angriffen wird damit drastisch reduziert.
Granulare Zugriffstoken werden eingestellt
Parallel dazu kündigt GitHub die Abschaffung der granularen Zugriffstoken (GATs) an. Diese Token konnten die Zwei-Faktor-Authentifizierung (2FA) umgehen – ein Sicherheitsalbtraum. Stattdessen setzt npm jetzt auf personal access tokens (PATs), die an 2FA gebunden sind.
Wenn du bisher GATs genutzt hast, musst du auf PATs umsteigen. Das GitHub-Dashboard führt dich durch den Prozess. Die Umstellung ist einfach, aber notwendig, um deine Projekte zu schützen.
So aktivierst du Skripte gezielt
Manchmal kommst du um Skripte nicht herum. Kein Problem. Du kannst für einzelne Pakete die Ausführung erlauben:
npm config set allow-scripts=true --location=projectOder du nutzt die neue .npmrc-Direktive allowedScripts, um eine Whitelist zu definieren. Nur Pakete auf dieser Liste dürfen Skripte ausführen.
Ein Beispiel: allowedScripts[]=node-gyp erlaubt nur node-gyp-Skripte. Das gibt dir die Kontrolle zurück.
Was bedeutet das für Open-Source-Projekte?
Für Maintainer großer Pakete ist das eine gute Nachricht. Weniger Angriffsfläche bedeutet weniger Verantwortung. Aber du musst deine Nutzer informieren, falls dein Paket Skripte benötigt. Dokumentiere es klar in der README.
Einige Entwickler kritisieren den Schritt als zu restriktiv. Aber die Daten sprechen eine andere Sprache: Im Jahr 2023 wurden über 40% der npm-Angriffe über bösartige Installationsskripte ausgeführt. Die Änderung ist überfällig.
Und ehrlich: Wenn ein Paket nicht ohne Skripte auskommt, solltest du hinterfragen, ob es das Richtige für dich ist. Oft gibt es Alternativen.
Fazit
npm 12 macht einen großen Schritt nach vorn. Die Standard-Deaktivierung von Installationsskripten und das Ende der GATs machen die Paketverwaltung sicherer. Du verlierst etwas Komfort, gewinnst aber enorm an Sicherheit. Stelle deine Projektkonfigurationen jetzt um – dein zukünftiges Ich wird es dir danken.
Comments
Post a Comment