{"id":324355,"date":"2026-04-30T01:06:48","date_gmt":"2026-04-29T23:06:48","guid":{"rendered":"https:\/\/borncity.com\/blog\/?p=324355"},"modified":"2026-04-30T07:04:40","modified_gmt":"2026-04-30T05:04:40","slug":"mini-shai-hulud-lieferkettenangriff-auf-sap-npm-pakete-stehlen-anmeldedaten","status":"publish","type":"post","link":"https:\/\/borncity.com\/blog\/2026\/04\/30\/mini-shai-hulud-lieferkettenangriff-auf-sap-npm-pakete-stehlen-anmeldedaten\/","title":{"rendered":"Mini Shai-Hulud Lieferkettenangriff auf SAP npm-Pakete; stehlen Anmeldedaten (29.4.2026)"},"content":{"rendered":"<p><img decoding=\"async\" style=\"float: left; margin: 0px 10px 0px 0px; display: inline;\" title=\"Sicherheit (Pexels, allgemeine Nutzung)\" src=\"https:\/\/borncity.com\/blog\/wp-content\/uploads\/2021\/04\/Sicherheit_klein.jpg\" alt=\"Sicherheit (Pexels, allgemeine Nutzung)\" width=\"200\" align=\"left\" \/>Es hat wohl einen \"Mini Shai-Hulud\" genannten Lieferkettenangriff auf diverse npm-Pakete (SAP-CAP), die von SAP in der Entwicklung verwendet werden, gegeben. Wer diese infizierten npm-Pakete w\u00e4hrend der Entwicklung in SAP-Modulen verwendet, hat sich eine Schadsoftware eingefangen. Diese greift Anmeldedaten ab, um diese an Server der Cyberkriminellen weiter zu leiteten, und versucht die Schadsoftware auf weitere npm-Pakete zu verteilen.<\/p>\n<h2><!--more--><br \/>\nErste Meldungen zu Mini Shai-Hulud Lieferkettenangriff auf SAP<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vg06.met.vgwort.de\/na\/6032e7d094d8413490e4c7c67d59bba9\" alt=\"\" width=\"1\" height=\"1\" \/>Mir sind erste Meldungen auf X zum 29. April 2026 am sp\u00e4teren Abend untergekommen.\u00a0 Nachfolgendem <a href=\"https:\/\/xcancel.com\/jfrogsecurity\/status\/2049494359775527248\" target=\"_blank\" rel=\"noopener\">Tweet<\/a> zufolge ist das <em>SAP Cloud Application Programming Model (CAP<\/em>) betroffen.<\/p>\n<p><a href=\"https:\/\/xcancel.com\/jfrogsecurity\/status\/2049494359775527248\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-324356\" src=\"https:\/\/borncity.com\/blog\/wp-content\/uploads\/2026\/04\/SAP-CAP-Malware.jpg\" alt=\"SAP-CAP Lieferkettenangriff\" width=\"599\" height=\"533\" srcset=\"https:\/\/borncity.com\/blog\/wp-content\/uploads\/2026\/04\/SAP-CAP-Malware.jpg 599w, https:\/\/borncity.com\/blog\/wp-content\/uploads\/2026\/04\/SAP-CAP-Malware-300x267.jpg 300w\" sizes=\"auto, (max-width: 599px) 100vw, 599px\" \/><\/a><\/p>\n<p>Betroffen sind die folgenden npm-Paket-Versionen der SAP-Entwicklungsumgebung, die von Entwicklern in \u00e4lteren Versionen gepinnt werden sollten.<\/p>\n<p>@cap-js\/postgres 2.2.2<br \/>\n@cap-js\/sqlite 2.2.2<br \/>\n@cap-js\/db-service 2.10.1<br \/>\nmbt 1.2.48<\/p>\n<p>npm habe diese Pakete bereits als \"DO NOT USE &#8211; unknown content\" und als deprecated geflaggt. Das npm-Paket mbt 1.2.48 ist laut <a href=\"https:\/\/xcancel.com\/SocketSecurity\/status\/2049479949644374507\" target=\"_blank\" rel=\"noopener\">diesem Tweet<\/a> bereits als mit Malware verseucht geflaggt.<\/p>\n<p><a href=\"https:\/\/xcancel.com\/SocketSecurity\/status\/2049479949644374507\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-324359\" src=\"https:\/\/borncity.com\/blog\/wp-content\/uploads\/2026\/04\/SAP-mbt-malware.jpg\" alt=\"SAP-mbt-Malware\" width=\"640\" height=\"420\" srcset=\"https:\/\/borncity.com\/blog\/wp-content\/uploads\/2026\/04\/SAP-mbt-malware.jpg 640w, https:\/\/borncity.com\/blog\/wp-content\/uploads\/2026\/04\/SAP-mbt-malware-300x197.jpg 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>Entwickler, die diese Pakete verwenden, sollten die Sperrdateien und CI\/CD-Protokolle f\u00fcr Installationen w\u00e4hrend des Zeitraums, in dem die Sicherheitsl\u00fccke bestand, \u00fcberpr\u00fcfen. In <a href=\"https:\/\/xcancel.com\/abh1sek\/status\/2049480221569728761\" target=\"_blank\" rel=\"noopener\">diesem Tweet<\/a> werden noch einige vorl\u00e4ufige Informationen gegeben.<\/p>\n<blockquote><p>SAP just experienced a supply chain attack. Likely via. a developer account compromise. Multiple packages under [at]cap-js namespace was published with malicious code injected. The malicious code resembles Shai-Hulud 2 due to its dependency on bun runtime and similar obfuscation and payload.<\/p>\n<p>Likely root cause: The malicious files (setup.mjs,\u00a0execution.js) do not exist in\u00a0cap-js\/cds-dbs\u00a0or\u00a0SAP\/cloud-mta-build-tool\u00a0on GitHub. No release tags for\u00a0v2.2.2\u00a0or\u00a0v2.10.1\u00a0exist.<\/p>\n<p>The legitimate\u00a0[at]cap-js\/sqlite@2.2.1\u00a0carries two npm attestations (npm publish + SLSA provenance) which was missing in the malicious versions.<\/p><\/blockquote>\n<p>Der Poster gibt den mit Malware verseuchten Commit mit <a href=\"https:\/\/api.github.com\/repos\/cap-js\/cds-dbs\/commits\/4ae7eb0cd583bf2876fc2db85df902f4f1a3b871\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">dieser URL<\/a> an. Im Commit sieht man, dass Claude Code involviert ist. Die Angreifer haben den b\u00f6sartigen Commit hochgeladen und ihn genutzt, um \u00fcber die GitHub-OIDC-Authentifizierung ein npm-Token zu erlangen. Mit diesem Token haben sie dann b\u00f6sartige Versionen ver\u00f6ffentlicht.<\/p>\n<blockquote><p>In <a href=\"https:\/\/xcancel.com\/adnanthekhan\/status\/2049490014183026721\" target=\"_blank\" rel=\"noopener\">diesem Tweet<\/a> gibt jemand an, dass ein NPM-Token durch einen falsch konfigurierten CircleCI-Job in PR-Builds offengelegt wurde. Das Ganze d\u00fcrfte meiner groben Einsch\u00e4tzung nach vor allem die SAP-Entwickler betreffen.<\/p><\/blockquote>\n<h2>Analyse von Socket Security<\/h2>\n<p>Socket Security hat auf X in einer <a href=\"https:\/\/xcancel.com\/SocketSecurity\/status\/2049479949644374507\" target=\"_blank\" rel=\"noopener\">Serie an Tweets<\/a> sowie in <a href=\"https:\/\/socket.dev\/blog\/sap-cap-npm-packages-supply-chain-attack\" target=\"_blank\" rel=\"noopener\">diesem Beitrag<\/a> eine schnelle Analyse publiziert. Die Analyse von Socket zeigt, dass die betroffenen Versionen ein neues Verhalten bei der Installation einf\u00fchrten, das zuvor nicht Teil der erwarteten Funktionalit\u00e4t dieser Pakete war.<\/p>\n<p>Die kompromittierten Versionen der npm-Pakete enthielten ein Vorinstallationsskript, das als Laufzeit-Bootstrapper fungiert: Es l\u00e4dt eine plattformspezifische Bun-ZIP-Datei von GitHub Releases herunter, entpackt sie und f\u00fchrt die extrahierte Bun-Bin\u00e4rdatei sofort aus.<\/p>\n<p>Die legitimen npm SAP-CAP-Pakete ben\u00f6tigten zuvor keinen Bun-Installer, um zu funktionieren. Es hei\u00dft in der Analyse, dass das pl\u00f6tzliche Hinzuf\u00fcgen eines Preinstall-Skripts zum Herunterladen der Bin\u00e4rdatei einen Ausf\u00fchrungsweg mit erheblichen Auswirkungen w\u00e4hrend der Paketinstallation geschaffen habe. Die Implementierung folgt zudem HTTP-Weiterleitungen, ohne das Ziel zu validieren, und verwendet PowerShell mit -ExecutionPolicy Bypass unter Windows, was das Risiko f\u00fcr betroffene Entwickler- und CI\/CD-Umgebungen erh\u00f6ht.<\/p>\n<p>Die betroffenen Pakete sind laut Analyse besonders relevant, da sie mit dem Cloud Application Programming Model (CAP) von SAP und den SAP-Cloud-Bereitstellungs-Workflows verbunden sind. Das mbt-Paket ist das \u00fcber npm vertriebene Cloud MTA Build Tool, das zum Erstellen von bereitstellungsfertigen Multi-Target-Anwendungsarchiven f\u00fcr SAP-Cloud-Anwendungen verwendet wird.<\/p>\n<p>Die @cap-js\/*-Pakete sind Datenbankdienstpakete f\u00fcr CAP-Anwendungen, einschlie\u00dflich SQLite- und PostgreSQL-Integrationen. Gem\u00e4\u00df Analyse scheinen die b\u00f6sartigen npm-SAP-CAP-Pakete mit einem Commit am 29. April 2026, ab 10:03:09 UTC bis 12:20:37 UTC hochgeladen worden zu sein.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-324364\" src=\"https:\/\/borncity.com\/blog\/wp-content\/uploads\/2026\/04\/SAP-CAP-Malware01.jpg\" alt=\"SAP-CAP-Malware \" width=\"640\" height=\"164\" srcset=\"https:\/\/borncity.com\/blog\/wp-content\/uploads\/2026\/04\/SAP-CAP-Malware01.jpg 640w, https:\/\/borncity.com\/blog\/wp-content\/uploads\/2026\/04\/SAP-CAP-Malware01-300x77.jpg 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n<p>Socket Security gibt in der Analyse an, dass jeder Tarball den erwarteten SAP-Quellcode-Baum sowie drei eingeschleuste Dateien enth\u00e4lt:<\/p>\n<ul>\n<li>eine ge\u00e4nderte `package.json`,<\/li>\n<li>eine neue `setup.mjs`<\/li>\n<li>und eine neue `execution.js`<\/li>\n<\/ul>\n<p>Die forensischen Untersuchungen zeigen laut Socket Security, dass die urspr\u00fcnglichen SAP-Dateien den Standard-\u00c4nderungszeitstempel von npm vom 26. Oktober 1985 tragen, w\u00e4hrend die drei eingef\u00fcgten Dateien mit Zeitstempeln zwischen 15:25 und 17:43 UTC am 29. April 2026 versehen sind. Das deutet darauf hin, dass die Tarballs nach dem Abruf aus einer legitimen Quelle nachbearbeitet wurden.<\/p>\n<h2>Der Vorgang entwickelt sich<\/h2>\n<p>Das Ganze ist ein Vorgang, der sich dynamisch entwickelt &#8211; Socket Security hat <a href=\"https:\/\/socket.dev\/blog\/sap-cap-npm-packages-supply-chain-attack\" target=\"_blank\" rel=\"noopener\">hier<\/a> bereits eine vorl\u00e4ufige Analyse vorgelegt. Dort wird der Angriff einer Gruppe zugeschrieben, die mit den TeamPCP-Angriffen in Verbindung steht. Das wird durch Hinweise im Code geschlossen. Die SAP-CAP-Kampagne folge zudem dem operativen Modell, das bereits bei fr\u00fcheren, mit TeamPCP in Verbindung stehenden Aktivit\u00e4ten zu beobachten war. Dies habe Aqua Security Trivy, LiteLLM, Checkmarx KICS\/AST, Telnyx und Bitwarden CLI betroffen. Die Payload sammelte Anmeldedaten f\u00fcr GitHub, npm, Cloud, Kubernetes und CI\/CD und nutzte den gestohlenen Zugriff anschlie\u00dfend, um weitere Repositorys und Pakete zu kompromittieren.<\/p>\n<p>Auch die Sicherheitsexperten von Wiz haben <a href=\"https:\/\/www.wiz.io\/blog\/mini-shai-hulud-supply-chain-sap-npm\" target=\"_blank\" rel=\"noopener\">hier<\/a> eine Analyse vorgelegt. Dort hei\u00dft es, dass der Payload bei der Ausf\u00fchrung der zweiten Stufe als ein Framework zum Diebstahl von Anmeldedaten und zur Verbreitung entpuppt, das sowohl auf Entwicklerumgebungen als auch auf CI\/CD-Pipelines abzielt.<\/p>\n<p>Auch dort hei\u00dft es, dass das Framework sensible Daten , darunter GitHub-Token, npm-Anmeldedaten, Cloud-Geheimnisse (AWS, Azure, GCP), Kubernetes-Token und GitHub-Actions-Geheimnisse, sammelt. Der Code bedient sich fortschrittlicher Techniken, wie beispielsweise dem Extrahieren von Geheimnissen aus dem Speicher des Runners. Die Exfiltration erfolgt \u00fcber \u00f6ffentliche GitHub-Repositorys, in denen verschl\u00fcsselte Payloads hinterlegt werden. Dar\u00fcber hinaus enth\u00e4lt die Malware eine Verbreitungslogik, um weitere Repositorys und Paketverteilungen zu infizieren.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Es hat wohl einen \"Mini Shai-Hulud\" genannten Lieferkettenangriff auf diverse npm-Pakete (SAP-CAP), die von SAP in der Entwicklung verwendet werden, gegeben. Wer diese infizierten npm-Pakete w\u00e4hrend der Entwicklung in SAP-Modulen verwendet, hat sich eine Schadsoftware eingefangen. Diese greift Anmeldedaten ab, &hellip; <a href=\"https:\/\/borncity.com\/blog\/2026\/04\/30\/mini-shai-hulud-lieferkettenangriff-auf-sap-npm-pakete-stehlen-anmeldedaten\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[426,7459],"tags":[4328,3836],"class_list":["post-324355","post","type-post","status-publish","format-standard","hentry","category-sicherheit","category-software","tag-sicherheit","tag-software"],"_links":{"self":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/324355","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/comments?post=324355"}],"version-history":[{"count":10,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/324355\/revisions"}],"predecessor-version":[{"id":324369,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/324355\/revisions\/324369"}],"wp:attachment":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/media?parent=324355"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/categories?post=324355"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/tags?post=324355"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}