{"id":49529,"date":"2026-08-21T08:29:05","date_gmt":"2026-08-21T06:29:05","guid":{"rendered":"https:\/\/overcentral.com\/de\/?p=49529"},"modified":"2026-08-21T08:29:05","modified_gmt":"2026-08-21T06:29:05","slug":"supply-chain-angriff-rust-crates-malware-49529","status":"publish","type":"post","link":"https:\/\/overcentral.com\/de\/supply-chain-angriff-rust-crates-malware-49529\/","title":{"rendered":"Supply-Chain-Angriff schleust Build-Zeit-Malware in Rust-Crates mit 245 Millionen Downloads"},"content":{"rendered":"<p>Ein dramatischer Supply-Chain-Angriff auf die Rust-\u00d6kosystem-Plattform crates.io hat gezeigt, wie schnell ein einziger kompromittierter Maintainer-Account weitverbreitete Bibliotheken infizieren kann. Drei Rust-Crates mit insgesamt 245 Millionen Downloads wurden mit Build-Zeit-Malware versehen, die w\u00e4hrend der Kompilierung eines Projekts einen sch\u00e4dlichen Payload ausf\u00fchrt \u2013 ohne dass eine einzige Zeile aus den betroffenen Bibliotheken aufgerufen werden muss. Die betroffenen Versionen \u2013 <strong>arrayref 0.3.10<\/strong>, <strong>internment 0.8.7<\/strong> und <strong>append-only-vec 0.1.9<\/strong> \u2013 wurden am 20. <a href=\"https:\/\/overcentral.com\/de\/prime-gaming-august-2026\/\" title=\"Prime Gaming August 2026: Steelrising und Airship: Kingdoms Adrift gratis\" data-iacss-internal=\"1\">August 2026<\/a> von einem einzigen Owner-Account ver\u00f6ffentlicht und innerhalb von 86 bis 107 Minuten von der <a href=\"https:\/\/www.rust-lang.org\/security.html\" target=\"_blank\" rel=\"noopener noreferrer\" data-iacss-external=\"1\">Rust Security Response Team<\/a> gel\u00f6scht. Der Angriff nutzt ein Typosquatting der allgegenw\u00e4rtigen Crate <strong>proc-macro2<\/strong> und injiziert eine Abh\u00e4ngigkeit namens <strong>proc-macro1<\/strong>, deren Build-Skript den eigentlichen Schadcode enth\u00e4lt.<\/p>\n<h2>Angriffsmechanismus im Detail: Wie die Build-Zeit-Malware funktioniert<\/h2>\n<p>Der entscheidende Angriffspunkt liegt im Build-Skript der Typosquatting-Crate <strong>proc-macro1<\/strong>. W\u00e4hrend des Build-Prozesses reassembliert das Skript die Adresse des Payload-Hosts und des Command-and-Control-Servers (C2) aus Base64-Fragmenten. Es installiert einen eigenen Zertifikatspr\u00fcfer, der bei drei Verifikationsmethoden ausnahmslos Erfolg zur\u00fcckmeldet \u2013 damit wird die TLS-Validierung deaktiviert. Anschlie\u00dfend w\u00e4hlt das Skript je nach Betriebssystem und CPU-Architektur einen von vier Payloads aus.<\/p>\n<p>Auf Unix- und macOS-Systemen schreibt der Schadcode die Bytes in die Datei <code>\/tmp\/rust-setup<\/code>codecodecodecode, setzt die Ausf\u00fchrungsberechtigung und startet den Prozess mit der C2-Adresse als erstem Argument. Unter Windows schreibt der Code ein PowerShell-Skript nach <code>%TEMP%<\/code>codecodecodecode und startet es versteckt \u00fcber einen VBScript-Launcher unter <code>wscript.exe<\/code>codecodecodecode. Der Quellcode enth\u00e4lt einen Kommentar, der erkl\u00e4rt, dass der Kindprozess vom Cargo-Job-Object getrennt wird, damit der Build nicht auf ihn warten muss.<\/p>\n<h3>Typosquatting als Einfallstor<\/h3>\n<p>Jede kompromittierte Version der drei betroffenen Crates enthielt im Manifest lediglich eine zus\u00e4tzliche Zeile: die Abh\u00e4ngigkeit zu <strong>proc-macro1<\/strong>. Der eigentliche Bibliothekscode von <strong>proc-macro1<\/strong> ist eine identische Kopie von <strong>proc-macro2<\/strong>, sodass Builds normal durchlaufen. Der Angreifer nutzte die Tatsache, dass Entwickler oft Tippfehler in Abh\u00e4ngigkeitsnamen \u00fcbersehen \u2013 ein klassisches Typosquatting. Die Verteilung erfolgte \u00fcber eine hinterh\u00e4ltige Taktik: Der Owner-Account yankte (zog zur\u00fcck) die Versionen 0.3.5 bis 0.3.9 von <strong>arrayref<\/strong> im selben Moment wie die Ver\u00f6ffentlichung der sch\u00e4dlichen Version. Dadurch war die kompromittierte 0.3.10 die einzige Version, gegen die Cargo nicht warnte \u2013 die typische Cargo-Meldung <em>\u201econsider updating to a version that is not yanked\u201c<\/em> wurde zur Falle.<\/p>\n<h2>Indikatoren einer Kompromittierung (IoCs)<\/h2>\n<p>Mehrere Sicherheitsforscher haben die Angriffsstruktur analysiert und konkrete Indikatoren ver\u00f6ffentlicht. Die Netzwerk-Kommunikation erfolgt \u00fcber die IP-Adressen <strong>23.254.165.112:9089<\/strong> (Payload-Host) und <strong>23.254.165.112:443<\/strong> (C2). Der Domainname <code>hwsrv-798836.hostwindsdns.com<\/code>codecodecodecode wird ebenfalls genannt. Auf dem infizierten System finden sich Dateien wie <code>\/tmp\/rust-setup<\/code>codecodecodecode (Unix\/macOS) sowie <code>%TEMP%\\rust-setup.ps1<\/code>codecodecodecode und <code>%TEMP%\\rust-setup-launch.vbs<\/code>codecodecodecode (Windows). Die Bin\u00e4rdateien tragen die Namen <code>rust-crate_0.1.0<\/code>codecodecodecode, <code>_0.2.0<\/code>codecodecodecode, <code>_0.3.0<\/code>codecodecodecode und <code>_0.4.0<\/code>codecodecodecode. Auf crates.io wurde ein Impersonator-Account namens <strong>dtolney<\/strong> (ID 438608) identifiziert, der den legitimen Owner <strong>droundy<\/strong> (David Roundy, registriert seit Oktober 2009) nachahmte. Die gef\u00e4lschte Autoren-Metadaten enthielten die E-Mail-Adresse <code>rchaitm@gmail.com<\/code>codecodecodecode.<\/p>\n<h3>Was das malizi\u00f6se Build-Skript bewirkt<\/h3>\n<p>Der Stage-2-Implantat beacons \u00fcber HTTPS-POST an den Pfad <code>\/49890878<\/code>codecodecodecode und etabliert Persistenz auf unterschiedliche Weise: unter Windows \u00fcber einen Registry-Run-Key, unter macOS \u00fcber einen LaunchAgent und unter Linux \u00fcber einen systemd-User-Service. Der Implantat unterst\u00fctzt vier Befehle: Terminierung, C2-Neukonfiguration, Persistenz-Installation sowie das Herunterladen und Ausf\u00fchren weiterer Skripte. Die Analyse des Sicherheitsunternehmens Wiz ergab, dass der Schadcode Browser-Anmeldedaten aus Chrome, Brave und Edge stiehlt, indem er SQLite-Login-Datenbanken abfragt. Die Nextron-Analyse, die sich auf den Windows-Payload konzentrierte, stellte fest, dass der Code nur die Spalten <code>origin_url<\/code>codecodecodecode und <code>username_value<\/code>codecodecodecode abfragt, nicht jedoch direkt <code>password_value<\/code>codecodecodecode \u2013 die Linux- und macOS-Payloads wurden nicht analysiert. Wichtig: Die Crate kann bereits durch <code>cargo build<\/code>codecodecodecode, <code>cargo check<\/code>codecodecodecode und <code>cargo test<\/code>codecodecodecode ausgel\u00f6st werden.<\/p>\n<h2>Verbindung zu nordkoreanischen Kampagnen<\/h2>\n<p>Wiz berichtet von einer substanziellen \u00dcberschneidung der Infrastruktur mit j\u00fcngsten nordkoreanischen Supply-Chain-Angriffen, darunter der Mastra-npm-Kompromittierung und dem Axios-Vorfall. Microsoft bewertet die Mastra-Aktivit\u00e4ten mit hoher Wahrscheinlichkeit als Werk der Gruppe <strong>Sapphire Sleet<\/strong>. <a href=\"https:\/\/overcentral.com\/de\/google-threat-intelligence-zero-days-rekord\/\" title=\"KI bringt Google Threat Intelligence Rekord bei Zero-Days\" data-iacss-internal=\"1\">Google Threat Intelligence<\/a> Group (GTIG) f\u00fchrt den Axios-Angriff auf einen Akteur zur\u00fcck, den sie als <strong>MIDNIGHT NEPTUNE<\/strong> (ehemals UNC1069) bezeichnet. Bisher hat jedoch kein Anbieter den crates.io-Vorfall einem namentlich bekannten Akteur zugeordnet.<\/p>\n<h3>Lehren f\u00fcr die Sicherheitsgemeinschaft<\/h3>\n<p>Der Vorfall unterstreicht die Verwundbarkeit von Open-Source-\u00d6kosystemen gegen\u00fcber Account-Kompromittierungen. Besonders beunruhigend ist, dass die sch\u00e4dliche Version nur 86 Minuten online war und dennoch potenziell Tausende von Builds beeinflussen konnte. Die Rust Security Response Team hat die betroffenen Versionen gel\u00f6scht, aber es gibt keinen Patched-Version und keine CVE-ID. Die RustSec-Advisory-Datenbank h\u00e4lt fest, dass es keine Hinweise auf eine tats\u00e4chliche Nutzung der sch\u00e4dlichen Versionen gibt \u2013 eine Aussage, die auf den Download-Zahlen basiert.<\/p>\n<p>Eine zentrale Gegenma\u00dfnahme w\u00e4re ein globales Mindestalter f\u00fcr neu ver\u00f6ffentlichte Abh\u00e4ngigkeiten (\u201eCooling Window\u201c). Ein Pull-Request f\u00fcr Cargo, das eine <code>global-min-publish-age<\/code>codecodecodecode-Einstellung einf\u00fchren w\u00fcrde, befindet sich seit dem 18. August in der finalen Kommentierungsphase \u2013 zwei Tage vor dem Angriff. GitHub hat im <a href=\"https:\/\/overcentral.com\/de\/spiele-juli-2026-highlights\/\" title=\"Die wichtigsten Spiele im Juli 2026: Diese Titel sind Pflicht\" data-iacss-internal=\"1\">Juli 2026<\/a> eine \u00e4hnliche 3-Tage-Abk\u00fchlungsfrist f\u00fcr Dependabot eingef\u00fchrt. Die Forderung nach solchen Sicherheitsma\u00dfnahmen wird durch diesen Vorfall nur noch dringlicher.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ein dramatischer Supply-Chain-Angriff auf die Rust-\u00d6kosystem-Plattform crates.io hat gezeigt, wie schnell ein einziger kompromittierter Maintainer-Account weitverbreitete Bibliotheken infizieren kann. Drei Rust-Crates mit insgesamt 245 Millionen Downloads wurden mit Build-Zeit-Malware versehen, die w\u00e4hrend der Kompilierung eines Projekts einen sch\u00e4dlichen Payload ausf\u00fchrt \u2013 ohne dass eine einzige Zeile aus den betroffenen Bibliotheken aufgerufen werden muss. Die betroffenen [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":49533,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/pub-4d4fc17555de4152be07eaf2a416a31e.r2.dev\/de\/ocie_1787293761232.jpg","fifu_image_alt":"Supply-Chain-Angriff schleust Build-Zeit-Malware in Rust-Crates mit 245 Millionen Downloads","footnotes":""},"categories":[6671],"tags":[],"class_list":["post-49529","post","type-post","status-publish","format-standard","has-post-thumbnail","category-scherheit"],"fifu_image_url":"https:\/\/pub-4d4fc17555de4152be07eaf2a416a31e.r2.dev\/de\/ocie_1787293761232.jpg","fifu_image_alt":"Supply-Chain-Angriff schleust Build-Zeit-Malware in Rust-Crates mit 245 Millionen Downloads","_links":{"self":[{"href":"https:\/\/overcentral.com\/de\/wp-json\/wp\/v2\/posts\/49529","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/overcentral.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/overcentral.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/overcentral.com\/de\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/overcentral.com\/de\/wp-json\/wp\/v2\/comments?post=49529"}],"version-history":[{"count":3,"href":"https:\/\/overcentral.com\/de\/wp-json\/wp\/v2\/posts\/49529\/revisions"}],"predecessor-version":[{"id":49532,"href":"https:\/\/overcentral.com\/de\/wp-json\/wp\/v2\/posts\/49529\/revisions\/49532"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/overcentral.com\/de\/wp-json\/wp\/v2\/media\/49533"}],"wp:attachment":[{"href":"https:\/\/overcentral.com\/de\/wp-json\/wp\/v2\/media?parent=49529"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/overcentral.com\/de\/wp-json\/wp\/v2\/categories?post=49529"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/overcentral.com\/de\/wp-json\/wp\/v2\/tags?post=49529"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}