[{"data":1,"prerenderedAt":332},["ShallowReactive",2],{"news-axios-npm-kompromittiert-trojaner":3},{"id":4,"title":5,"author":6,"body":7,"cover":321,"date":322,"description":323,"extension":324,"hero":325,"meta":326,"navigation":122,"path":327,"seo":328,"showContactForm":329,"showTechNav":329,"stem":330,"__hash__":331},"content\u002Fnews\u002Faxios-npm-kompromittiert-trojaner.md","axios kompromittiert: Remote-Access-Trojaner in einer der meistgenutzten JS-Bibliotheken","Thomas K.",{"type":8,"value":9,"toc":314},"minimark",[10,14,19,31,46,49,53,60,64,79,167,218,233,245,267,270,274,282,286,310],[11,12,13],"p",{},"Ende März wurden über ein gekapertes Maintainer-Konto manipulierte Versionen der HTTP-Bibliothek axios veröffentlicht, die einen Remote-Access-Trojaner installierten. Wir erklären, was passiert ist, wie Sie Ihre Projekte prüfen und wie Sie Ihre npm-Installationen dauerhaft absichern.",[15,16,18],"h2",{"id":17},"was-ist-passiert","Was ist passiert?",[11,20,21,22,26,27,30],{},"Am 31. März 2026 erschienen auf npm die Versionen ",[23,24,25],"code",{},"axios@1.14.1"," und ",[23,28,29],{},"axios@0.30.4",". Veröffentlicht wurden sie über das Konto eines der Hauptmaintainer, das die Angreifer zuvor übernommen hatten. Laut StepSecurity wurde die hinterlegte E-Mail-Adresse auf eine ProtonMail-Adresse der Angreifer geändert; die Pakete wurden manuell veröffentlicht, am regulären CI\u002FCD-Prozess des Projekts vorbei. Nach dem Post-Mortem des Maintainers ging der Übernahme gezieltes Social Engineering voraus.",[11,32,33,34,37,38,41,42,45],{},"Am Quellcode von axios selbst änderte sich nichts. Die manipulierten Versionen fügten lediglich eine neue Abhängigkeit hinzu: ",[23,35,36],{},"plain-crypto-js@4.2.1",". Deren ",[23,39,40],{},"postinstall","-Skript lud je nach Betriebssystem einen Trojaner für macOS, Windows oder Linux nach und verwischte anschließend seine Spuren, indem es die eigene ",[23,43,44],{},"package.json"," durch eine saubere Version ersetzte. Eine harmlose Vorversion des Pakets war bereits rund 18 Stunden vorher veröffentlicht worden, um unauffälliger zu wirken.",[11,47,48],{},"npm entfernte die beiden axios-Versionen nach etwa zwei bis drei Stunden. Laut Techzine wird axios wöchentlich mehr als 300 Millionen Mal heruntergeladen – selbst ein kurzes Zeitfenster reicht also für eine große Zahl betroffener Installationen.",[15,50,52],{"id":51},"warum-betrifft-sie-das","Warum betrifft Sie das?",[11,54,55,56,59],{},"axios steckt in unzähligen Web-Frontends, Node.js-Backends und Build-Werkzeugen, oft auch als indirekte Abhängigkeit. Der Schadcode lief bereits während ",[23,57,58],{},"npm install"," – auf Entwicklerrechnern ebenso wie in CI-Pipelines. Dort liegen typischerweise genau die Daten, die Angreifer suchen: npm-Tokens, Cloud-Zugangsdaten, SSH-Schlüssel und Deployment-Secrets.",[15,61,63],{"id":62},"was-sie-jetzt-tun-sollten","Was Sie jetzt tun sollten",[65,66,67],"ul",{},[68,69,70,74,75,78],"li",{},[71,72,73],"strong",{},"Lockfiles prüfen:"," Suchen Sie in allen Repositories nach den betroffenen Versionen und nach dem Paket ",[23,76,77],{},"plain-crypto-js",":",[80,81,86],"pre",{"className":82,"code":83,"language":84,"meta":85,"style":85},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Installierte axios-Versionen (auch indirekte) anzeigen\nnpm ls axios plain-crypto-js --all\n\n# Lockfiles nach dem Schadpaket durchsuchen\ngrep -rn \"plain-crypto-js\" \\\n  --include=package-lock.json --include=yarn.lock --include=pnpm-lock.yaml .\n","bash","",[23,87,88,97,117,124,130,152],{"__ignoreMap":85},[89,90,93],"span",{"class":91,"line":92},"line",1,[89,94,96],{"class":95},"sHwdD","# Installierte axios-Versionen (auch indirekte) anzeigen\n",[89,98,100,104,108,111,114],{"class":91,"line":99},2,[89,101,103],{"class":102},"sBMFI","npm",[89,105,107],{"class":106},"sfazB"," ls",[89,109,110],{"class":106}," axios",[89,112,113],{"class":106}," plain-crypto-js",[89,115,116],{"class":106}," --all\n",[89,118,120],{"class":91,"line":119},3,[89,121,123],{"emptyLinePlaceholder":122},true,"\n",[89,125,127],{"class":91,"line":126},4,[89,128,129],{"class":95},"# Lockfiles nach dem Schadpaket durchsuchen\n",[89,131,133,136,139,143,145,148],{"class":91,"line":132},5,[89,134,135],{"class":102},"grep",[89,137,138],{"class":106}," -rn",[89,140,142],{"class":141},"sMK4o"," \"",[89,144,77],{"class":106},[89,146,147],{"class":141},"\"",[89,149,151],{"class":150},"sTEyZ"," \\\n",[89,153,155,158,161,164],{"class":91,"line":154},6,[89,156,157],{"class":106},"  --include=package-lock.json",[89,159,160],{"class":106}," --include=yarn.lock",[89,162,163],{"class":106}," --include=pnpm-lock.yaml",[89,165,166],{"class":106}," .\n",[65,168,169,182,203,209],{},[68,170,171,174,175,178,179,181],{},[71,172,173],{},"Spuren suchen:"," Ein Verzeichnis ",[23,176,177],{},"node_modules\u002Fplain-crypto-js"," zeigt laut StepSecurity, dass der Dropper ausgeführt wurde – auch wenn die ",[23,180,44],{}," darin harmlos aussieht.",[68,183,184,187,188,191,192,195,196,199,200,202],{},[71,185,186],{},"Zurück auf sichere Versionen:"," Verwenden Sie ",[23,189,190],{},"axios@1.14.0"," bzw. ",[23,193,194],{},"axios@0.30.3"," und erzwingen Sie diese bei Bedarf per ",[23,197,198],{},"overrides"," in der ",[23,201,44],{},".",[68,204,205,208],{},[71,206,207],{},"Betroffene Systeme als kompromittiert behandeln:"," Wurde eine der Versionen installiert, sollten Sie den Rechner neu aufsetzen und sämtliche dort verfügbaren Zugangsdaten von einem sauberen System aus rotieren. Bei CI-Runnern betrifft das alle Secrets des jeweiligen Laufs.",[68,210,211,214,215,217],{},[71,212,213],{},"Install-Skripte in CI abschalten:"," Viele Projekte brauchen keine ",[23,216,40],{},"-Skripte. Installieren Sie in Pipelines reproduzierbar aus dem Lockfile:",[80,219,221],{"className":82,"code":220,"language":84,"meta":85,"style":85},"npm ci --ignore-scripts\n",[23,222,223],{"__ignoreMap":85},[89,224,225,227,230],{"class":91,"line":92},[89,226,103],{"class":102},[89,228,229],{"class":106}," ci",[89,231,232],{"class":106}," --ignore-scripts\n",[65,234,235],{},[68,236,237,240,241,244],{},[71,238,239],{},"Wartezeit für neue Versionen einführen:"," Manipulierte Releases werden meist innerhalb von Stunden entdeckt. Eine Mindestwartezeit („Cooldown\") verhindert, dass brandneue Versionen sofort installiert werden. In pnpm etwa per ",[23,242,243],{},"pnpm-workspace.yaml"," (Angabe in Minuten):",[80,246,250],{"className":247,"code":248,"language":249,"meta":85,"style":85},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","minimumReleaseAge: 10080 # 7 Tage\n","yaml",[23,251,252],{"__ignoreMap":85},[89,253,254,258,260,264],{"class":91,"line":92},[89,255,257],{"class":256},"swJcz","minimumReleaseAge",[89,259,78],{"class":141},[89,261,263],{"class":262},"sbssI"," 10080",[89,265,266],{"class":95}," # 7 Tage\n",[11,268,269],{},"Vergleichbare Einstellungen gibt es laut StepSecurity auch für npm, Yarn und Bun; Dependabot und Renovate lassen sich ebenfalls so konfigurieren, dass neue Versionen erst nach einigen Tagen vorgeschlagen werden.",[15,271,273],{"id":272},"fazit","Fazit",[11,275,276,277,202],{},"Der axios-Vorfall zeigt erneut, dass ein einziges gekapertes Maintainer-Konto genügt, um Millionen Projekte zu gefährden. Feste Versionen im Lockfile, deaktivierte Install-Skripte in der Pipeline und eine Wartezeit für neue Releases senken das Risiko deutlich – und kosten im Alltag kaum Aufwand. Wenn Sie Ihre JavaScript-Projekte und Build-Prozesse entsprechend absichern möchten, ",[278,279,281],"a",{"href":280},"\u002Fkontakt","sprechen Sie uns an",[15,283,285],{"id":284},"quellen","Quellen",[65,287,288,296,303],{},[68,289,290],{},[278,291,295],{"href":292,"rel":293},"https:\u002F\u002Fwww.stepsecurity.io\u002Fblog\u002Faxios-compromised-on-npm-malicious-versions-drop-remote-access-trojan",[294],"nofollow","axios Compromised on npm: Malicious Versions Drop Remote Access Trojan – StepSecurity",[68,297,298],{},[278,299,302],{"href":300,"rel":301},"https:\u002F\u002Fwww.techzine.eu\u002Fnews\u002Fsecurity\u002F140082\u002Faxios-npm-package-compromised-posing-a-new-supply-chain-threat",[294],"Axios npm package compromised, posing a new supply chain threat – Techzine",[68,304,305],{},[278,306,309],{"href":307,"rel":308},"https:\u002F\u002Flaravel-news.com\u002Faxios-npm-package-compromised-with-remote-access-trojan",[294],"Axios npm Package Compromised with Remote Access Trojan – Laravel News",[311,312,313],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":85,"searchDepth":99,"depth":99,"links":315},[316,317,318,319,320],{"id":17,"depth":99,"text":18},{"id":51,"depth":99,"text":52},{"id":62,"depth":99,"text":63},{"id":272,"depth":99,"text":273},{"id":284,"depth":99,"text":285},"\u002Fimages\u002Fnews\u002Faxios-npm-kompromittiert-trojaner.webp","2026-04-15","Ende März wurden über ein gekapertes Maintainer-Konto axios-Versionen mit Trojaner veröffentlicht. So prüfen Sie Ihre Projekte und härten npm ab.","md",null,{},"\u002Fnews\u002Faxios-npm-kompromittiert-trojaner",{"title":5,"description":323},false,"news\u002Faxios-npm-kompromittiert-trojaner","5BRYfqE1GXN3U7zjI1YBVLvuaJIgy_PG76awPfhu49I",1793714089378]