
Pack de preuve de concept et de laboratoire pour CVE-2026-48356, un téléversement de fichier non restreint et non authentifié dans les options personnalisées REST du panier invité de Magento Open Source.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-48356
Magento Open Source 2.4.8-p5 — Adobe
Adobe Commerce est affecté par une vulnérabilité de téléversement de fichier sans restriction de type dangereux qui pourrait entraîner une exécution de code arbitraire dans le contexte de l'utilisateur actuel.
| CVE | CVE-2026-48356 · CVE.org |
| CWE | CWE-434 |
| CVSS | Critique : 9.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N |
| Produit | Magento Open Source |
| Affecté | toutes les versions jusqu'à 2.4.8-p5 (inclus) |
| Corrigé | 2.4.8-2026-jul / APSB26-73 et versions ultérieures |
| Auth | non authentifié (voir la source map) |
| Licence | GNU Affero GPL v3.0 |
| Lab | 127.0.0.1 uniquement · pack de divulgation fournisseur/client, pas un scanner |
ImageContentValidator autorise tout nom de fichier sans ponctuation interdite. ImageProcessor::getFileName conserve l'extension de l'appelant. Aucune vérification option_id / option-type sur le file_info du panier invité. Correctif APSB26-73 / 2.4.8-2026-jul.
POST/rest/default/V1/guest-carts/{cartId}/itemsPOST /rest/default/V1/guest-carts returns cart idPOST /rest/default/V1/guest-carts/{id}/items with custom_options file_info GIF89a + <?= witness ?> named GHSA48356-WITNESS.phpMagento\Framework\Api\ImageContentValidator::isValid getimagesizefromstring onlyMagento\Catalog\Model\Webapi\Product\Option\Type\File\Processor writes pub/media/custom_options/quote/.../GHSA48356-WITNESS.phpLe JSON HTTP add-item du panier invité contient GHSA48356-WITNESS.php
À faire en premier : Mettez à jour Magento Open Source vers 2.4.8-2026-jul / APSB26-73 ou une version plus récente.
Vérifier après la mise à niveau
CVE-2026-48356-Abraxas-Labs.py contre la version corrigée : le témoin mappé ne doit pas apparaître.Si vous ne pouvez pas mettre à jour immédiatement
Ciblez uniquement http://127.0.0.1:8088 (ou le loopback que vous avez lié). Ne pointez pas ce script vers Internet.
python3 CVE-2026-48356-Abraxas-Labs.py
Le succès correspond au témoin ci-dessus dans le corps de la réponse. Un HTML 200 générique ne l'est pas.
Pile loopback utilisée pour reproduire. Images officielles sauf si un Dockerfile dans ce dossier est construit depuis les sources.
cd lab
docker compose up --force-recreate
Liez l'arborescence du produit vulnérable à côté de Compose si le YAML monte un répertoire local (zip du plugin / tag source issu de la table des versions). Ne publiez rien d'autre que 127.0.0.1.
# CVE-2026-48356 (PolyShell)
CWE: CWE-434
CVSS: Critical 9.3 (Adobe CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N). Sansec: unauthenticated REST upload.
## Description
Unauthenticated unrestricted file upload in Magento/Adobe Commerce guest-cart REST custom options. A GIF89a polyglot with a `.php` name bypasses `ImageContentValidator` and is written to `pub/media/custom_options/quote/`.
## Product
Magento Open Source 2.4.8-p5 (affected through 2.4.9 / 2.4.8-p5). Lab oracle is a witness filename in the REST body, not a shell.
Ce pack de divulgation est sous licence GNU Affero General Public License v3.0. Voir LICENSE.
Ce pack est destiné au fournisseur, au propriétaire du site et aux labs sous licence. Le script communique avec 127.0.0.1. L'utiliser contre des systèmes que vous ne possédez pas n'est pas autorisé par Abraxas Labs. Aucune garantie.