Supply-Chain-Schock: CrowdStrike-npm-Pakete kompromittiert
Kompromittierte CrowdStrike-npm-Pakete verbreiten ein bösartiges bundle.js, das Secrets stiehlt und sich per GitHub Actions dauerhaft in Repositorys festsetzt.
- von blacklens.io Team
- Veröffentlicht
- Aktualisiert
- 4 Min. Lesezeit

Erneut erschüttert ein groß angelegter Supply-Chain-Angriff die Open-Source-Community: Mehrere npm-Pakete von CrowdStrike wurden kompromittiert.
Über den Account crowdstrike-publisher wurden zahlreiche infizierte npm-Pakete veröffentlicht. Darüber hinaus sind hunderte weitere kompromittierte Pakete von Drittanbietern betroffen; die derzeit bekannten sind am Ende des Beitrags zusammengetragen. Wenn Sie eines dieser Pakete verwenden, empfehlen wir, sofort die Indicators of Compromise (IOC) zu prüfen und alle Secrets zu rotieren.
Indicators of Compromise
SHA-256-Hashes bekannter Varianten des bösartigen bundle.js:
de0e25a3e6c1e1e5998b306b7141b3dc4c0088da9d7bb47c1c00c91e6e4f85d6
81d2a004a1bca6ef87a1caf7d0e0b355ad1764238e40ff6d1b1cb77ad4f595c3
83a650ce44b2a9854802a7fb4c202877815274c129af49e6c2d1d5d5d55c501e
4b2399646573bb737c4969563303d8ee2e9ddbd1b271f1ca9e35ea78062538db
dc67467a39b70d1cd4c1f7f7a459b35058163592f4a9e8fb4dffcbba98ef210c
46faab8ab153fae6e80e7cca38eab363075bb524edd79e42269217a083628f09
b74caeaa75e077c99f7d44f46daaf9796a3be43ecf24f2a1fd381844669da777
Exfiltrations-Endpunkt (entschärft geschrieben):
hxxps://webhook[.]site/bb8ca5f6-4175-45d2-b042-fc9ebb8170b7
Was ist Shai-Hulud?
Die Kampagne wird von den Forschern nach dem Namen ihrer YAML-Workflow-Datei „Shai-Hulud“ genannt. Sie ist eine Fortsetzung der Angriffe, die bereits das weitverbreitete Paket @ctrl/tinycolor betrafen. Davon zu unterscheiden ist der Phishing-Angriff auf chalk, debug und weitere Pakete vom 8. September 2025.
Unter den CrowdStrike-Paketen betroffen sind unter anderem @crowdstrike/commitlint, @crowdstrike/foundry-js, @crowdstrike/glide-core und mehrere @crowdstrike/logscale-*-Pakete. Die vollständige Liste finden Sie am Ende des Beitrags.
Wie der Angriff funktioniert
Der Angriff läuft in fünf Schritten ab:
- Schadfunktion einschleusen: In die kompromittierten Pakete wurde ein manipuliertes
bundle.jseingebunden. - Secret-Scanner nachladen: Sobald das Skript ausgeführt wird, lädt es TruffleHog herunter, ein legitimes Open-Source-Tool, das eigentlich dazu dient, versehentlich veröffentlichte Secrets zu finden.
- Secrets sammeln und validieren: Das Tool durchsucht die infizierten Instanzen nach API-Tokens, GitHub-Zugriffstokens, npm-Tokens, Cloud-Zugangsdaten (z. B. AWS-Schlüssel) und vielen weiteren Secrets und validiert diese.
- Persistenz via GitHub Actions: Anschließend wird eine nicht autorisierte GitHub-Actions-Workflow-Datei (
shai-hulud-workflow.yml) in das Ziel-Repository geschrieben. Sie bleibt bestehen, selbst wenn das kompromittierte Paket entfernt wird. Beim nächsten Lauf der Pipeline kann der Workflow erneut ausgeführt werden und Daten exfiltrieren. - Exfiltration: Alle gesammelten Informationen werden an einen fest codierten Webhook des Angreifers übermittelt.
Auswirkungen und Empfehlungen
CrowdStrike betont, dass die kompromittierten npm-Pakete nicht Teil der Falcon-Sensor-Plattform sind und Kunden des Produkts nicht betroffen sind. Das Unternehmen entfernte die Pakete zügig aus der öffentlichen Registry und rotierte seine Schlüssel.
Für alle Organisationen gilt dennoch:
- CI/CD-Pipelines und Entwickler-Laptops prüfen: Installierte npm-Pakete sollten auf die kompromittierten Versionen kontrolliert werden.
- Alle npm-Tokens und anderen Secrets rotieren: Liegen unautorisierte Zugriffstokens vor, müssen diese sofort erneuert werden.
- Logs überwachen: Verdächtige
npm publish-Ereignisse oder unerwartete Änderungen in GitHub-Workflows sind ein Indikator für Persistenzversuche.
Warum proaktiver Schutz entscheidend ist
Einige der betroffenen Pakete gehören zum beliebten Framework NativeScript oder zu Entwicklungs-SDKs von Start-ups. Die lange Liste und die erneute Benennung des YAML-Workflows als „shai-hulud“ zeigen, dass diese Kampagne weit über CrowdStrike hinausgeht und sich Lieferketten-Angriffe mit bewusster Markenbildung professionalisieren.
Die Angreifer nutzen legitime Security-Tools wie TruffleHog und tarnen ihre Operationen in gängigen DevOps-Workflows. Darauf zu warten, dass ein Registry-Betreiber kompromittierte Pakete entfernt, reicht nicht mehr aus.
Wie blacklens.io unterstützt
Die Prüfung von Paketversionen in Pipelines und auf Entwicklergeräten bleibt Aufgabe der oben genannten Schritte. blacklens.io deckt die Angriffsfläche ab, die Ihre Organisation nach außen zeigt:
- Frühwarnsystem für neue Schwachstellen: Neue CVEs werden laufend mit den Technologien Ihrer Angriffsfläche abgeglichen und per Scan verifiziert, wo eine Prüfvorlage existiert. Alerts erreichen das zuständige Team per E-Mail, Push oder über Integrationen wie Jira, Microsoft Teams oder Slack.
- Transparenz über Ihre Angriffsfläche: Durch kontinuierliches Attack Surface Management wissen Sie, welche Assets, Dienste und Technologien von außen erreichbar sind. Wird in einem bestimmten Produkt eine Schwachstelle bekannt, sehen Sie schnell, welche Ihrer Assets betroffen sein könnten.
- Schnellere Priorisierung: Zu jedem Treffer im Threat Center zeigt blacklens.io die betroffenen Assets und Signale wie CVSS, EPSS, KEV-Eintrag und verfügbare Exploits auf einen Blick. Das spart Zeit bei Bewertung und Eindämmung.
- Vertrauensbildung und Compliance: Indem Sie zeigen, dass Sie Ihre Lieferkettenrisiken im Griff haben, stärken Sie das Vertrauen von Kunden und Partnern. Viele Branchenstandards und Regulatoren fordern heute ein Supply-Chain-Risikomanagement – blacklens.io unterstützt Sie dabei mit den nötigen Nachweisen und Berichten.
Fazit
Die fortgesetzten Angriffe auf die npm-Lieferkette unterstreichen, wie dringend proaktive Sicherheitsmaßnahmen sind. Die kompromittierten CrowdStrike-Pakete sind nur die Spitze des Eisbergs: Die Shai-Hulud-Kampagne hat bereits hunderte weitere Pakete infiziert und nutzt DevOps-Automatisierung, um sich zu verbreiten.
Überprüfen Sie Ihre Software-Lieferkette jetzt, rotieren Sie Secrets regelmäßig und etablieren Sie Mechanismen, die verdächtige Aktivitäten frühzeitig erkennen. Mit blacklens.io behalten Organisationen zusätzlich ihre externe Angriffsfläche und neue Schwachstellen darin laufend im Blick.
Kompromittierte Pakete und Versionen
Die folgenden npm-Pakete und Versionen wurden zum Zeitpunkt der Veröffentlichung als betroffen bestätigt (nach Paket gruppiert):
@ahmedhfarag/ngx-perfect-scrollbar: 20.0.20@ahmedhfarag/ngx-virtual-scroller: 4.0.4@art-ws/common: 2.0.28@art-ws/config-eslint: 2.0.4, 2.0.5@art-ws/config-ts: 2.0.7, 2.0.8@art-ws/db-context: 2.0.24@art-ws/di-node: 2.0.13@art-ws/di: 2.0.28, 2.0.32@art-ws/eslint: 1.0.5, 1.0.6@art-ws/fastify-http-server: 2.0.24, 2.0.27@art-ws/http-server: 2.0.21, 2.0.25@art-ws/openapi: 0.1.9, 0.1.12@art-ws/package-base: 1.0.5, 1.0.6@art-ws/prettier: 1.0.5, 1.0.6@art-ws/slf: 2.0.15, 2.0.22@art-ws/ssl-info: 1.0.9, 1.0.10@art-ws/web-app: 1.0.3, 1.0.4@crowdstrike/commitlint: 8.1.1, 8.1.2@crowdstrike/falcon-shoelace: 0.4.1, 0.4.2@crowdstrike/foundry-js: 0.19.1, 0.19.2@crowdstrike/glide-core: 0.34.2, 0.34.3@crowdstrike/logscale-dashboard: 1.205.1, 1.205.2@crowdstrike/logscale-file-editor: 1.205.1, 1.205.2@crowdstrike/logscale-parser-edit: 1.205.1, 1.205.2@crowdstrike/logscale-search: 1.205.1, 1.205.2@crowdstrike/tailwind-toucan-base: 5.0.1, 5.0.2@ctrl/deluge: 7.2.1, 7.2.2@ctrl/golang-template: 1.4.2, 1.4.3@ctrl/magnet-link: 4.0.3, 4.0.4@ctrl/ngx-codemirror: 7.0.1, 7.0.2@ctrl/ngx-csv: 6.0.1, 6.0.2@ctrl/ngx-emoji-mart: 9.2.1, 9.2.2@ctrl/ngx-rightclick: 4.0.1, 4.0.2@ctrl/qbittorrent: 9.7.1, 9.7.2@ctrl/react-adsense: 2.0.1, 2.0.2@ctrl/shared-torrent: 6.3.1, 6.3.2@ctrl/tinycolor: 4.1.1, 4.1.2@ctrl/torrent-file: 4.1.1, 4.1.2@ctrl/transmission: 7.3.1@ctrl/ts-base32: 4.0.1, 4.0.2@hestjs/core: 0.2.1@hestjs/cqrs: 0.1.6@hestjs/demo: 0.1.2@hestjs/eslint-config: 0.1.2@hestjs/logger: 0.1.6@hestjs/scalar: 0.1.7@hestjs/validation: 0.1.6@nativescript-community/arraybuffers: 1.1.6, 1.1.7, 1.1.8@nativescript-community/gesturehandler: 2.0.35@nativescript-community/perms: 3.0.5, 3.0.6, 3.0.7, 3.0.8@nativescript-community/sentry: 4.6.43@nativescript-community/sqlite: 3.5.2, 3.5.3, 3.5.4, 3.5.5@nativescript-community/text: 1.6.9, 1.6.10, 1.6.11, 1.6.12, 1.6.13@nativescript-community/typeorm: 0.2.30, 0.2.31, 0.2.32, 0.2.33@nativescript-community/ui-collectionview: 6.0.6@nativescript-community/ui-document-picker: 1.1.27, 1.1.28@nativescript-community/ui-drawer: 0.1.30@nativescript-community/ui-image: 4.5.6@nativescript-community/ui-label: 1.3.35, 1.3.36, 1.3.37@nativescript-community/ui-material-bottom-navigation: 7.2.72, 7.2.73, 7.2.74, 7.2.75@nativescript-community/ui-material-bottomsheet: 7.2.72@nativescript-community/ui-material-core-tabs: 7.2.72, 7.2.73, 7.2.74, 7.2.75, 7.2.76@nativescript-community/ui-material-core: 7.2.72, 7.2.73, 7.2.74, 7.2.75, 7.2.76@nativescript-community/ui-material-ripple: 7.2.72, 7.2.73, 7.2.74, 7.2.75@nativescript-community/ui-material-tabs: 7.2.72, 7.2.73, 7.2.74, 7.2.75@nativescript-community/ui-pager: 14.1.36, 14.1.37, 14.1.38@nativescript-community/ui-pulltorefresh: 2.5.4, 2.5.5, 2.5.6, 2.5.7@nexe/config-manager: 0.1.1@nexe/eslint-config: 0.1.1@nexe/logger: 0.1.3@nstudio/angular: 20.0.4, 20.0.5, 20.0.6@nstudio/focus: 20.0.4, 20.0.5, 20.0.6@nstudio/nativescript-checkbox: 2.0.6, 2.0.7, 2.0.8, 2.0.9@nstudio/nativescript-loading-indicator: 5.0.1, 5.0.2, 5.0.3, 5.0.4@nstudio/ui-collectionview: 5.1.11, 5.1.12, 5.1.13, 5.1.14@nstudio/web-angular: 20.0.4@nstudio/web: 20.0.4@nstudio/xplat-utils: 20.0.5, 20.0.6, 20.0.7@nstudio/xplat: 20.0.5, 20.0.6, 20.0.7@operato/board: 9.0.36, 9.0.37, 9.0.38, 9.0.39, 9.0.40, 9.0.41, 9.0.42, 9.0.43, 9.0.44, 9.0.45, 9.0.46@operato/data-grist: 9.0.29, 9.0.35, 9.0.36, 9.0.37@operato/graphql: 9.0.22, 9.0.35, 9.0.36, 9.0.37, 9.0.38, 9.0.39, 9.0.40, 9.0.41, 9.0.42, 9.0.43, 9.0.44, 9.0.45, 9.0.46@operato/headroom: 9.0.2, 9.0.35, 9.0.36, 9.0.37@operato/help: 9.0.35, 9.0.36, 9.0.37, 9.0.38, 9.0.39, 9.0.40, 9.0.41, 9.0.42, 9.0.43, 9.0.44, 9.0.45, 9.0.46@operato/i18n: 9.0.35, 9.0.36, 9.0.37@operato/input: 9.0.27, 9.0.35, 9.0.36, 9.0.37, 9.0.38, 9.0.39, 9.0.40, 9.0.41, 9.0.42, 9.0.43, 9.0.44, 9.0.45, 9.0.46, 9.0.47, 9.0.48@operato/layout: 9.0.35, 9.0.36, 9.0.37@operato/popup: 9.0.22, 9.0.35, 9.0.36, 9.0.37, 9.0.38, 9.0.39, 9.0.40, 9.0.41, 9.0.42, 9.0.43, 9.0.44, 9.0.45, 9.0.46, 9.0.49@operato/pull-to-refresh: 9.0.36, 9.0.37, 9.0.38, 9.0.39, 9.0.40, 9.0.41, 9.0.42@operato/shell: 9.0.22, 9.0.35, 9.0.36, 9.0.37, 9.0.38, 9.0.39@operato/styles: 9.0.2, 9.0.35, 9.0.36, 9.0.37@operato/utils: 9.0.22, 9.0.35, 9.0.36, 9.0.37, 9.0.38, 9.0.39, 9.0.40, 9.0.41, 9.0.42, 9.0.43, 9.0.44, 9.0.45, 9.0.46, 9.0.49@teselagen/bio-parsers: 0.4.30@teselagen/bounce-loader: 0.3.16, 0.3.17@teselagen/file-utils: 0.3.22@teselagen/liquibase-tools: 0.4.1@teselagen/ove: 0.7.40@teselagen/range-utils: 0.3.14, 0.3.15@teselagen/react-list: 0.8.19, 0.8.20@teselagen/react-table: 6.10.19, 6.10.20, 6.10.22@teselagen/sequence-utils: 0.3.34@teselagen/ui: 0.9.10@thangved/callback-window: 1.1.4@things-factory/attachment-base: 9.0.43, 9.0.44, 9.0.45, 9.0.46, 9.0.47, 9.0.48, 9.0.49, 9.0.50@things-factory/auth-base: 9.0.43, 9.0.44, 9.0.45@things-factory/email-base: 9.0.42, 9.0.43, 9.0.44, 9.0.45, 9.0.46, 9.0.47, 9.0.48, 9.0.49, 9.0.50, 9.0.51, 9.0.52, 9.0.53, 9.0.54@things-factory/env: 9.0.42, 9.0.43, 9.0.44, 9.0.45@things-factory/integration-base: 9.0.43, 9.0.44, 9.0.45@things-factory/integration-marketplace: 9.0.43, 9.0.44, 9.0.45@things-factory/shell: 9.0.43, 9.0.44, 9.0.45@tnf-dev/api: 1.0.8@tnf-dev/core: 1.0.8@tnf-dev/js: 1.0.8@tnf-dev/mui: 1.0.8@tnf-dev/react: 1.0.8@ui-ux-gang/devextreme-angular-rpk: 24.1.7@yoobic/design-system: 6.5.17@yoobic/jpeg-camera-es6: 1.0.13@yoobic/yobi: 8.7.53airchief: 0.3.1airpilot: 0.8.8angulartics2: 14.1.1, 14.1.2browser-webdriver-downloader: 3.0.8capacitor-notificationhandler: 0.0.2, 0.0.3capacitor-plugin-healthapp: 0.0.2, 0.0.3capacitor-plugin-ihealth: 1.1.8, 1.1.9capacitor-plugin-vonage: 1.0.2, 1.0.3capacitorandroidpermissions: 0.0.4, 0.0.5config-cordova: 0.8.5cordova-plugin-voxeet2: 1.0.24cordova-voxeet: 1.0.32create-hest-app: 0.1.9db-evo: 1.1.4, 1.1.5devextreme-angular-rpk: 21.2.8ember-browser-services: 5.0.2, 5.0.3ember-headless-form-yup: 1.0.1ember-headless-form: 1.1.2, 1.1.3ember-headless-table: 2.1.5, 2.1.6ember-url-hash-polyfill: 1.0.12, 1.0.13ember-velcro: 2.2.1, 2.2.2encounter-playground: 0.0.2, 0.0.3, 0.0.4, 0.0.5eslint-config-crowdstrike-node: 4.0.3, 4.0.4eslint-config-crowdstrike: 11.0.2, 11.0.3eslint-config-teselagen: 6.1.7, 6.1.8globalize-rpk: 1.7.4graphql-sequelize-teselagen: 5.3.8, 5.3.9html-to-base64-image: 1.0.2json-rules-engine-simplified: 0.2.1, 0.2.4jumpgate: 0.0.2koa2-swagger-ui: 5.11.1, 5.11.2mcfly-semantic-release: 1.3.1mcp-knowledge-base: 0.0.2mcp-knowledge-graph: 1.2.1mobioffice-cli: 1.0.3monorepo-next: 13.0.1, 13.0.2mstate-angular: 0.4.4mstate-cli: 0.4.7mstate-dev-react: 1.1.1mstate-react: 1.6.5ng2-file-upload: 7.0.2, 7.0.3, 8.0.1, 8.0.2, 8.0.3, 9.0.1ngx-bootstrap: 18.1.4, 19.0.3, 19.0.4, 20.0.3, 20.0.4, 20.0.5ngx-color: 10.0.1, 10.0.2ngx-toastr: 19.0.1, 19.0.2ngx-trend: 8.0.1ngx-ws: 1.1.5, 1.1.6oradm-to-gql: 35.0.14, 35.0.15oradm-to-sqlz: 1.1.2ove-auto-annotate: 0.0.9, 0.0.10pm2-gelf-json: 1.0.4, 1.0.5printjs-rpk: 1.6.1react-complaint-image: 0.0.32, 0.0.35react-jsonschema-form-conditionals: 0.3.18, 0.3.21react-jsonschema-form-extras: 1.0.4react-jsonschema-rxnt-extras: 0.4.9remark-preset-lint-crowdstrike: 4.0.1, 4.0.2rxnt-authentication: 0.0.3, 0.0.4, 0.0.5, 0.0.6rxnt-healthchecks-nestjs: 1.0.2, 1.0.3, 1.0.4, 1.0.5rxnt-kue: 1.0.4, 1.0.5, 1.0.6, 1.0.7swc-plugin-component-annotate: 1.9.1, 1.9.2tbssnch: 1.0.2teselagen-interval-tree: 1.1.2tg-client-query-builder: 2.14.4, 2.14.5tg-redbird: 1.3.1, 1.3.2tg-seq-gen: 1.0.9, 1.0.10thangved-react-grid: 1.0.3ts-gaussian: 3.0.5, 3.0.6ts-imports: 1.0.1, 1.0.2tvi-cli: 0.1.5ve-bamreader: 0.2.6, 0.2.7ve-editor: 1.0.1, 1.0.2verror-extra: 6.0.1voip-callkit: 1.0.2, 1.0.3wdio-web-reporter: 0.1.3yargs-help-output: 5.0.3yoo-styles: 6.0.326
Häufige Fragen
- Shai-Hulud ist eine Supply-Chain-Kampagne gegen npm-Pakete, benannt nach der YAML-Workflow-Datei, die die Schadsoftware in Repositorys schreibt. Im September 2025 wurden darüber zahlreiche Pakete des Accounts crowdstrike-publisher und hunderte weitere Pakete von Drittanbietern kompromittiert, darunter @ctrl/tinycolor und Pakete aus dem NativeScript-Umfeld. Ein manipuliertes bundle.js stiehlt Secrets und setzt sich per GitHub Actions dauerhaft fest.
Weitere Beiträge

HTTP2Shell: Die Brotli-Lücke reicht weit über Node.js hinaus
HTTP2Shell ist keine neue Lücke, sondern CVE-2026-111497 in jeder Software mit Brotli-Decoder. Wer betroffen ist und warum die Versionsnummer täuscht.
- 5 Min. Lesezeit

Node2Shell: Warum Node patchen allein nicht reicht
Node2Shell nutzt eine Lücke im Brotli-Decoder, den Node.js mitliefert. Der Fix steckt in Node 22.23.4, 24.22.1 und 26.12.1 – und in Brotli selbst.
- 5 Min. Lesezeit

Fortinet Hardening Release: Patchen ohne Advisory
Fortinet liefert am 22. Oktober 2026 kritische Fixes für FortiOS, FortiManager und FortiAnalyzer aus. Die Advisories mit CVE-Nummern folgen am 10. November.
- 5 Min. Lesezeit
Sehen Sie Ihre Angriffsfläche in 24 Stunden.
Wir richten Ihren Workspace ein und besprechen die ersten Funde mit Ihnen.
- 14 Tage kostenlos, voller Funktionsumfang
- Keine Kreditkarte nötig
- Erste Funde besprechen wir gemeinsam