
StyleSmuggler (CVE-2026-75650) IOC-Toolkit für Magento Open Source und Adobe Commerce. Erkennen Sie kompromittierte Shops, Rust-Implantate, PHP-Webshells, Persistenz-Artefakte und bekannte Indikatoren für eine Kompromittierung.
Magento Zero-Day · Adobe Commerce Zero-Day · CVE-2026-75650 · APSB26-146 · VULN-39341 · Unauthentifizierte RCE · Magento-Malware · Magento-Backdoor-Entfernung · Magento-2.4.9-Schwachstelle · Rust-Implantat · GraphQL-Styles-Injection · PHP-Webshell
Community-Indicators-of-Compromise, ein Kompromittierungs-Scanner sowie Anleitungen zur Abschwächung/Behebung für StyleSmuggler (CVE-2026-75650) — die unauthentifizierte Magento-Open-Source-/Adobe-Commerce-RCE, die von Sansec am 5. September 2026 offengelegt wurde, mit bestätigter Ausnutzung in freier Wildbahn seit dem 4. September 2026. Adobe veröffentlichte am 7. September 2026 einen offiziellen Fix, APSB26-146. Wenn Sie nach „StyleSmuggler IOC“, „CVE-2026-75650“, „APSB26-146“, „VULN-39341“, „Magento fc-cache Malware“, „Magento chronyd Backdoor“, „gvfsd-user Magento“ oder „Magento GraphQL Styles RCE“ gesucht haben, ist dies das Repository, das Sie suchen.
Dies ist ausschließlich ein defensives Toolkit. Es enthält Erkennungssignaturen, einen Kompromittierungs-Scanner sowie Härtungs-/Blockierungsregeln, die aus veröffentlichten, aus erster Hand stammenden Incident-Berichten erstellt wurden. Es enthält keinen Exploit-Code, keinen Proof-of-Concept-Trigger und nichts, was die Angriffs-Payload erzeugt. Wenn Sie danach suchen, sind Sie im falschen Repository — patchen und jagen Sie stattdessen.
| Schwachstelle | StyleSmuggler (Name von Sansec) — CVE-2026-75650 |
| Hersteller | Adobe (Magento Open Source, Adobe Commerce) |
| CVE | CVE-2026-75650, zugewiesen am 07.09.2026 |
| Adobe-Bulletin | APSB26-146, veröffentlicht am 07.09.2026 20:20 UTC, Priorität 1 (höchste) |
| Ebenfalls erforderlich | APSB26-138 — Adobes reguläres Commerce-Update für September 2026, veröffentlicht am 08.09.2026. Adobe gibt an, dass VULN-39341 zusätzlich zu diesem Update angewendet werden muss, nicht stattdessen. |
| CVSS | 10.0 (3.1 und 4.0) — Kritisch |
| CWE | CWE-1336, Unzureichende Neutralisierung spezieller Elemente, die in einer Template-Engine verwendet werden |
| Offizieller Patch | Veröffentlicht. Hotfix VULN-39341. Die Abdeckung ist nicht universell — siehe Tabelle unten. |
| Erforderliche Authentifizierung | Keine — unauthentifiziert |
| Betroffene Versionen | Von Sansec auf sauberem Magento Open Source 2.4.7, 2.4.8, 2.4.9 reproduziert; erstes bestätigtes Opfer lief auf 2.4.6-p15, vollständig gepatcht (bezüglich früherer Patches) |
| Ausnutzung | Aktiv seit 04.09.2026 22:20 UTC; fortgesetzt bis zur Patch-Veröffentlichung; ein zweiter, nicht verwandter Angreifer kam am 07.09.2026 hinzu |
| Bekannte Rust-Implantat-Varianten | [kworker/u:8:0] (4. Sept.) → fc-cache v2.1.4 (6. Sept.) → chronyd v2.1.5 (7. Sept.) — gleicher Betreiber, gleiche Agenten-ID, aufsteigende Versionen |
| Zweiter, nicht verwandter Angreifer | PHP-Webshell in pub/media/catalog/product/cache/, eingeleitet durch eine DNS-exfiltrierende Aufklärungs-Sonde — unabhängig vom Rust-Implantat, bestätigt am 07.09.2026 |
| Bekannte Zustellvektoren | GraphQL-styles[]-Parameter; ungültiger Store-Code, der in var/log/system.log protokolliert wird; Datei-Upload über Magentos Kunden-Custom-Options; die Store:-Header-Injection des nicht verwandten zweiten Angreifers |
| Auswirkung | Remote-Code-Ausführung → persistentes Rust-basiertes Backdoor, unabhängige PHP-Webshell, Redis-Session-Ernte, Offenlegung von Anmeldeinformationen/Geheimnissen über app/etc/env.php |
| Produkt | Abgedeckt durch APSB26-146 | Kein offizieller Fix |
|---|---|---|
| Adobe Commerce (inkl. B2B, Cloud) | 2.4.4 – 2.4.9 | unter 2.4.4 |
| Adobe Commerce B2B | 1.3.3 – 1.5.3 | unter 1.3.3 |
| Magento Open Source | nur 2.4.6 – 2.4.9 | 2.4.5 und darunter |
Wenn Sie eine ältere, nicht unterstützte Version verwenden, liefert Adobe Ihnen keinen
Fix, obwohl Sie genauso angreifbar sind. Siehe docs/PATCHING.md für
Ihre Optionen.
Diese Informationen ändern sich schnell. Überprüfen Sie vor dem Handeln die
Primärquellen: Sansecs Advisory und
Adobes Bulletin.
Siehe docs/TIMELINE.md für ein laufendes Protokoll und zitieren Sie
Ihre Quellen, wenn Sie hier etwas aktualisieren.
Magentos eigener GraphQL-styles-Parameter und sein auf Dependency-Injection basierender
Datei-Scanner werden als zweistufige, dateibasierte Deferred-Execution-Primitive
missbraucht, anstatt als einzelner offensichtlicher Injektionspunkt:
var/log/system.log über einen ungültigen Store-Code, den
Magento wörtlich protokolliert, oder var/report/<hash>), eingeschmuggelt über den
GraphQL-styles[]-Parameter, einen mutierten Request-Header oder (für den zweiten,
nicht verwandten Angreifer unten) den Store:-Header.getProcessedTemplate-Pfad)
durchläuft einen Codepfad, der es Magentos eigenem DI-/Code-Scanner ermöglicht, die
vergiftete Datei per include() einzubinden und so das PHP des Angreifers
auszuführen. Sie müssen die E-Mail nicht öffnen — das serverseitige Rendern reicht
aus — und die Kette kann sogar dann ausgelöst werden, wenn die E-Mail-Zustellung
selbst fehlschlägt.Ein einfaches, werkzeugloses Frühwarnzeichen: eine verstümmelte „Payment Transaction
Failed Reminder“-E-Mail in Ihrem Posteingang mit rohen, ungerenderten {{var ...}}-Tags
und einer Kundenadresse, die auf .invalid endet. Dies ist oft das erste sichtbare
Zeichen, bevor jemand ein Log prüft.
Sansecs Updates bestätigten einen zweiten, unabhängigen Ausnutzungspfad für dieselbe Rust-Implantat-Kampagne: Selbst Stores, die die Session-Speicherung von Redis auf die Datenbank verlagert hatten, wurden weiterhin kompromittiert — der zweite Versuch desselben Betreibers gelang Sekunden später über eine Datei, die über Magentos Kunden-Custom-Options-Funktion hochgeladen wurde. Die Verlagerung der Session-Speicherung ist für sich genommen kein Fix.
Separat fand Sansec am 7. September einen völlig unabhängigen Angreifer, der
denselben StyleSmuggler-Einstiegspunkt für eine viel einfachere Payload nutzte: eine
PHP-Webshell, die in Magentos eigenen Produktbild-Cache abgelegt wurde
(pub/media/catalog/product/cache/ss_<10hex>/sync_<10hex>.php), eingeleitet durch eine
Aufklärungs-Sonde, die ihre Payload im Store:-HTTP-Header versteckt und ihre Ergebnisse
über DNS statt über eine HTTP-Antwort exfiltriert. Laut Sansec handelt es sich um
„Standard-Tooling“ — keine anhaltende Kampagne — aber es bedeutet, dass ein einzelner
verwundbarer Host zwei unabhängige Eindringlinge über eine einzige Schwachstelle
tragen kann. Die Bereinigung des Rust-Implantats bedeutet nicht, dass Ihr Store sauber ist.
Das Rust-Implantat selbst hat sich ebenfalls weiterentwickelt: Auf den ursprünglichen,
als [kworker/u:8:0] getarnten Build (4. Sept.) folgte ein als fc-cache getarnter
Build v2.1.4 (6. Sept.), der als NTP-Verkehr getarnt Beacon-Signale sendet, und dann eine
als chronyd getarnte Neubereitstellung v2.1.5 (7. Sept.) desselben Implantats,
derselben Agenten-ID — ein Beweis dafür, dass der Angreifer aktiv iteriert, um Ihrer
veröffentlichten Erkennung zu entgehen. Sansec gibt an, bisher keine Hinweise darauf
gesehen zu haben, dass dieses Implantat über Persistenz/Aufklärung hinaus bewaffnet
wurde — lesen Sie das angesichts der funktionierenden Webshell des unabhängigen
Angreifers auf demselben Zugriffspfad nicht als Beruhigung.
Siehe docs/FAQ.md für schnelle Antworten,
docs/VULNERABILITY.md für die vollständige technische
Dokumentation und Quellenangaben, docs/PATCHING.md für die
Anwendung von Adobes offiziellem Fix und
docs/INCIDENT_RESPONSE.md für das Vorgehen, wenn der
Scanner etwas findet.
1. Patchen, falls Ihre Version abgedeckt ist:
# Siehe docs/PATCHING.md für den vollständigen Prozess — dies ist kein Einzeiler, es
# erfordert Adobe-Repo-Anmeldeinformationen und Ihre projektbezogene
# Patch-Management-Tooling.
2. Unabhängig vom Patch-Status auf bestehende Kompromittierung scannen — Patchen stoppt neue Ausnutzung, bereinigt aber kein bestehendes Backdoor oder eine Webshell:
git clone https://github.com/jithinkrishnanrs/stylesmuggler-ioc-toolkit.git
cd stylesmuggler-ioc-toolkit
sudo bash scripts/stylesmuggler_scan.sh --magento-root /var/www/html
Oder die Python-Version für strukturierte (JSON-)Ausgabe, z. B. zur Einspeisung in ein SIEM:
sudo python3 scripts/stylesmuggler_scan.py --magento-root /var/www/html --json report.json
Beide Skripte sind standardmäßig schreibgeschützt — sie erkennen und melden, sie
beenden keine Prozesse und löschen keine Dateien, es sei denn, Sie übergeben
--remediate, da eine verfrühte Bereinigung forensische Beweise zerstört (siehe
docs/INCIDENT_RESPONSE.md).
[kworker/u:8:0]-Build: ~/.local/share/.gvfsd/gvfsd-user, dessen Sperrdateien, /tmp/.kw_*, /tmp/.gvfsd_*fc-cache-Build v2.1.4 (6. Sept.): ~/.cache/fontconfig/fc-cache, /tmp/.fc_<8hex>.lockchronyd-Build v2.1.5 (7. Sept.): /tmp/.chrony-<8hex>/chronydgvfsd-user-Build, zweimal pro Stunde
(13,43 * * * *) für fc-cache[kworker/u:8:0], fc-cache oder chronyd, der
nicht root gehört (oder, für fc-cache/chronyd, nicht mit dem echten
System-Binary übereinstimmt)/proc/<pid>/exe-Images
(die beiden können sich unterscheiden — das Implantat wurde dabei beobachtet, wie es
sich im Speicher selbst aktualisiert)var/log/system.log, var/report/) auf injiziertes
PHP, die beiden bekannten Trigger-Header-Formen (X-TRACE-<10hex> und X-<12hex>) sowie
die Kampagnen-Marker des zweiten, nicht verwandten Angreifers (ss5_/ss6_<hex>)
und die DNS-Canary-Domain (oast.site)MG<20hex>::...::/MG<20hex>), die in Logs
zurückbleiben, wenn die Payload tatsächlich ausgeführt wurdepub/media — die auf einem korrekt konfigurierten Magento-Store
niemals ausführbares PHP enthalten sollten — die dem Webshell-Ablegemuster des zweiten
Angreifers entsprechenfc-cache/chronyd-Builds an
ntp.timesync.to:123/UDP (und Fallbacks) sowie seiner einfachen HTTP-Aufrufe an
öffentliche IP-Lookup-Dienste127.0.0.1:6379 beobachtet, mit null ausgehendem C2-Verkehr — ein ruhiges Netzwerk
ist kein sauberes) — und beachten Sie, dass die alleinige Verlagerung von Sessions
von Redis den zweiten, datei-Upload-basierten Ausnutzungsvektor nicht schließtVollständige Indikatorliste mit Quellenangaben: iocs/.
docs/PATCHING.md für Kennungen, Bezugsquellen
und Anwendung. Dies hat nun Priorität vor den untenstehenden Übergangsmaßnahmen.mitigations/:
styles[]-Zustellpfads
(nginx /
Apache)pub/media/pub/static
(nginx /
Apache) — gezielte Verteidigung
gegen die Webshell-Technik des zweiten, nicht verwandten Angreifersmitigations/README.md für
Einschränkungen des Umfangs — keine dieser Maßnahmen schließt den
Customer-Custom-Options-Vektor oder die Store:-Header-Zustellung des zweiten
Angreifers.app/etc/env.php. Mindestens nach der Eindämmung: Session-Speicher leeren (Redis
und/oder DB), den Magento-crypt/key rotieren, alle Admin-Passwörter (und bestehende
Admin-Sessions invalidieren), das Datenbank-Passwort, jeden Payment-Provider-API-Key
und andere Integrations-Anmeldeinformationen in env.php sowie alle SSH-/Deploy-Keys,
die der Site-Benutzer lesen konnte. Prüfen Sie außerdem die admin_user-Tabelle auf
ein betrügerisches Konto und pub/media/ / pub/static/ / Theme-Verzeichnisse auf
abgelegte Webshells — sowohl die des Rust-Implantats als auch die des nicht verwandten
zweiten Angreifers — bevor Sie einen Store als sauber betrachten. Vollständige
Reihenfolge der Schritte: docs/INCIDENT_RESPONSE.md.docs/ Schwachstellen-Dokumentation, Zeitplan, FAQ, Patch-Anleitung, IR-Playbook
iocs/ Hashes, IPs, Domains, Dateipfade, YARA, Suricata/IDS-Regeln
scripts/ stylesmuggler_scan.sh / .py, Crontab-Bereinigungshilfe
mitigations/ nginx / Apache / ModSecurity / fail2ban-Regeln
CVE-2026-75650, APSB26-146, VULN-39341, Magento Zero-Day 2026, Adobe Commerce Zero-Day, StyleSmuggler-Patch, Magento-GraphQL-Schwachstelle, Magento-Styles-Parameter-RCE, gvfsd-user-Malware, fc-cache-Magento-Backdoor, chronyd-Magento-Malware, Magento-kworker-Prozess-Malware, Magento-Redis-Session-Hijack, Magento-unauthentifizierte-RCE-September-2026, Magento-2.4.9-Exploit, Adobe-Commerce-Backdoor-Entfernung, Magento-pub-media-Webshell, eComscan-StyleSmuggler, Sansec-Shield-StyleSmuggler.
Jeder Indikator in diesem Repository geht auf eine zitierte, veröffentlichte Quelle
zurück — in erster Linie Sansecs Advisory (mindestens bis 07.09.2026 20:50 UTC
aktualisiert), Adobes APSB26-146-Bulletin sowie Community-Incident-Response-Berichte von
Respondern, die Live-Infektionen behandelt haben. Siehe die Quellenangabe am Ende jeder
Datei in iocs/.
Behandeln Sie nichts hier als vollständig oder endgültig. IOCs (Trigger-Header, User-Agent-Strings, Implantat-Tarnungen und nun auch die Kampagnen-Marker eines zweiten Angreifers) haben sich bereits innerhalb von Tagen nach der Offenlegung mehrfach geändert; rechnen Sie mit weiteren Änderungen. Gleichen Sie Formen und Verhalten ab, nicht nur wörtliche Strings, wo immer es die Skripte zulassen.
Eine Variante, einen neuen Hash, eine neue Quelladresse oder einen False Positive gesehen? Eröffnen Sie ein Issue oder einen PR mit dem, was Sie beobachtet haben, und wie Sie es beobachtet haben. Bitte:
MIT für den Code in diesem Repository (siehe LICENSE). Indikatordaten werden
„wie besehen“ für defensive Zwecke bereitgestellt, mit durchgehenden Quellenangaben.
Dies ist inoffizielles, von der Community erstelltes defensives Tooling, kein Adobe- oder Sansec-Produkt und mit keinem von beiden verbunden. Es wird ohne Gewähr bereitgestellt. Adobes offizieller Patch (APSB26-146) wurde veröffentlicht, aber die Abdeckung ist auf bestimmte Produktversionen beschränkt — prüfen Sie Adobes Sicherheitsbulletin direkt, bevor Sie annehmen, dass Ihre Installation abgedeckt oder behoben ist.