đ Contexte
PubliĂ© le 17 mars 2026 par Sansec (sansec.io), cet article prĂ©sente une analyse technique dĂ©taillĂ©e d’une vulnĂ©rabilitĂ© critique baptisĂ©e PolyShell, affectant Magento Open Source et Adobe Commerce dans toutes leurs versions de production actuelles.
đš VulnĂ©rabilitĂ©
La faille rĂ©side dans l’API REST de Magento, au niveau du traitement des options de panier (cart item custom options). Trois contrĂŽles critiques sont absents :
- Aucune validation de l’ID d’option soumis
- Aucune vĂ©rification du type d’option (file)
- Aucune restriction sur les extensions de fichier (.php, .phtml, .phar autorisées)
La seule validation présente (getimagesizefromstring) est trivialement contournable via des fichiers polyglots (images GIF/PNG contenant du code PHP exécutable).
Endpoints vulnérables (sans authentification) :
POST /V1/guest-carts/:cartId/itemsPUT /V1/guest-carts/:cartId/items/:itemId
đŠ Versions affectĂ©es
- Upload non restreint : toutes versions Magento Open Source et Adobe Commerce jusqu’Ă 2.4.9-alpha2
- XSS stocké : toutes versions antérieures à 2.3.5 ou config serveur non standard
- RCE via PHP : nginx stock 2.0.0â2.2.x, Apache prĂ©-2.3.5 sans
php_flag engine 0 - Patché : 2.4.9-alpha3+ uniquement (pré-release), via APSB25-94
đ ïž Exploitation active
L’exploitation active a dĂ©butĂ© le 19 mars 2026, avec un mass scanning automatisĂ© lancĂ© le 23 mars. Au 24 mars, 56,7% de tous les stores ont eu du code PHP malveillant uploadĂ©. Plus de 50 adresses IP ont Ă©tĂ© identifiĂ©es comme sources d’attaque.
Deux types de payloads observés :
- Webshell GIF89a avec authentification par cookie : vérifie le cookie
dcontre un hash MD5 hardcodé (a17028468cb2a870d460676d6d6da3ad63706778e3), exécute du code viaeval(base64_decode()) - Shell RCE protégé par mot de passe : utilise
hash_equals()avec hash MD5 double (4009d3fa8132195a2dab4dfa3affc8d2), passe les commandes Ăsystem()
Noms de fichiers observés : index.php, json-shell.php, bypass.phtml, c.php, r.php, rce.php, static.php, test.php, blocked-json.php, bypass-async.php, urlencode-shell.php, xx_malicious_file.php, ato_poc.html, mikhail.html
đ Chronologie
- 16 mars 2026 : Sansec ajoute la protection PolyShell Ă Shield
- 17 mars 2026 : Patterns de détection ajoutés à eComscan + alerte publique
- 19 mars 2026 : PremiÚres attaques observées
- 23 mars 2026 : Mass scanning, 23% des stores protégés ciblés
- 24 mars 2026 : 56,7% des stores avec du code PHP malveillant uploadé
đ Nature de l’article
Il s’agit d’une analyse technique et alerte de sĂ©curitĂ© publiĂ©e par Sansec, combinant divulgation de vulnĂ©rabilitĂ©, analyse de payloads, donnĂ©es d’exploitation en temps rĂ©el et liste d’IOCs.
đ§ TTPs et IOCs dĂ©tectĂ©s
TTP
- T1190 â Exploit Public-Facing Application (Initial Access)
- T1505.003 â Server Software Component: Web Shell (Persistence)
- T1059.004 â Command and Scripting Interpreter: Unix Shell (Execution)
- T1027 â Obfuscated Files or Information (Defense Evasion)
- T1036 â Masquerading (Defense Evasion)
- T1041 â Exfiltration Over C2 Channel (Exfiltration)
- T1595.002 â Active Scanning: Vulnerability Scanning (Reconnaissance)
IOC
- IPv4 :
3.12.250.83 - IPv4 :
3.88.149.41 - IPv4 :
3.150.234.247 - IPv4 :
18.220.50.153 - IPv4 :
23.22.254.35 - IPv4 :
31.134.0.53 - IPv4 :
31.134.1.34 - IPv4 :
31.134.7.117 - IPv4 :
31.134.11.173 - IPv4 :
31.134.15.89 - IPv4 :
31.134.15.251 - IPv4 :
45.136.24.213 - IPv4 :
45.136.26.181 - IPv4 :
45.136.27.218 - IPv4 :
45.147.233.211 - IPv4 :
45.147.234.73 - IPv4 :
45.155.166.228 - IPv4 :
52.24.6.119 - IPv4 :
64.49.38.96 - IPv4 :
78.129.161.63 - IPv4 :
79.130.2.23 - IPv4 :
81.169.144.135 - IPv4 :
91.132.124.183 - IPv4 :
103.216.223.206 - IPv4 :
109.107.178.102 - IPv4 :
115.79.194.68 - IPv4 :
136.244.92.114 - IPv4 :
138.199.24.219 - IPv4 :
138.199.46.65 - IPv4 :
138.199.46.68 - IPv4 :
140.235.2.103 - IPv4 :
140.235.171.72 - IPv4 :
140.248.75.31 - IPv4 :
140.248.75.114 - IPv4 :
142.229.84.117 - IPv4 :
162.159.113.66 - IPv4 :
185.3.235.111 - IPv4 :
185.111.111.154 - IPv4 :
185.111.111.155 - IPv4 :
193.151.188.86 - IPv4 :
193.233.216.217 - IPv4 :
193.233.221.124 - IPv4 :
194.180.233.186 - IPv4 :
198.186.130.10 - IPv4 :
199.96.165.186 - IPv4 :
212.87.218.43 - IPv4 :
216.38.6.137 - IPv6 :
2001:19f0:6c01:15da:5400:6ff:fe05:e560 - URLs :
/V1/guest-carts/:cartId/items - URLs :
/V1/guest-carts/:cartId/items/:itemId - MD5 :
a17028468cb2a870d460676d6d6da3ad63706778e3 - MD5 :
4009d3fa8132195a2dab4dfa3affc8d2 - Fichiers :
index.php - Fichiers :
json-shell.php - Fichiers :
bypass.phtml - Fichiers :
c.php - Fichiers :
r.php - Fichiers :
rce.php - Fichiers :
static.php - Fichiers :
test.php - Fichiers :
blocked-json.php - Fichiers :
bypass-async.php - Fichiers :
urlencode-shell.php - Fichiers :
xx_malicious_file.php - Fichiers :
ato_poc.html - Fichiers :
mikhail.html - Fichiers :
bypass.php - Chemins :
pub/media/custom_options/quote/ - Chemins :
pub/media/custom_options/
Malware / Outils
- PolyShell webshell (backdoor)
- GIF89a PHP webshell (backdoor)
đ Source originale : https://sansec.io/research/magento-polyshell