
Prueba de concepto y paquete de laboratorio para CVE-2026-48356, una carga de archivos sin restricciones y sin autenticación en las opciones personalizadas de la API REST del carrito de invitado de Magento Open Source.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-48356
Magento Open Source 2.4.8-p5 — Adobe
Adobe Commerce se ve afectado por una vulnerabilidad de carga sin restricciones de archivos con tipos peligrosos que podría dar lugar a la ejecución de código arbitrario en el contexto del usuario actual.
| CVE | CVE-2026-48356 · CVE.org |
| CWE | CWE-434 |
| CVSS | Crítico: 9.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N |
| Producto | Magento Open Source |
| Afectado | todas las versiones hasta la 2.4.8-p5 (inclusive) |
| Parcheado | 2.4.8-2026-jul / APSB26-73 y posteriores |
| Autenticación | no autenticado (ver mapa de origen) |
| Licencia | GNU Affero GPL v3.0 |
| Laboratorio | solo 127.0.0.1 · paquete de divulgación para el proveedor/cliente, no es un escáner |
ImageContentValidator permite cualquier nombre de archivo sin puntuación prohibida. ImageProcessor::getFileName conserva la extensión del llamador. No hay comprobación de option_id / tipo de opción en el file_info del carrito de invitado. Hotfix APSB26-73 / 2.4.8-2026-jul.
POST/rest/default/V1/guest-carts/{cartId}/itemsPOST /rest/default/V1/guest-carts devuelve el id del carritoPOST /rest/default/V1/guest-carts/{id}/items con custom_options file_info GIF89a + <?= witness ?> llamado GHSA48356-WITNESS.phpMagento\Framework\Api\ImageContentValidator::isValid solo getimagesizefromstringMagento\Catalog\Model\Webapi\Product\Option\Type\File\Processor escribe pub/media/custom_options/quote/.../GHSA48356-WITNESS.phpEl JSON HTTP de add-item del carrito de invitado contiene GHSA48356-WITNESS.php
Haga esto primero: Actualice Magento Open Source a 2.4.8-2026-jul / APSB26-73 o posterior.
Verificar tras la actualización
CVE-2026-48356-Abraxas-Labs.py contra la compilación parcheada: el testigo mapeado no debe aparecer.Si no puede actualizar de inmediato
Apunte solo a http://127.0.0.1:8088 (o al loopback que haya vinculado). No apunte este script a internet.
python3 CVE-2026-48356-Abraxas-Labs.py
El éxito es el testigo anterior en el cuerpo de la respuesta. Un 200 HTML genérico no lo es.
Stack de loopback usado para reproducir. Imágenes oficiales a menos que un Dockerfile en esta carpeta compile desde el código fuente.
cd lab
docker compose up --force-recreate
Vincule el árbol del producto vulnerable junto a Compose si el YAML monta un directorio local (zip del plugin / etiqueta de origen de la tabla de versiones). No publique nada excepto 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.
Este paquete de divulgación está licenciado bajo la GNU Affero General Public License v3.0. Ver LICENSE.
Este paquete es para el proveedor, el propietario del sitio y los laboratorios autorizados. El script se comunica con 127.0.0.1. Su uso contra sistemas que no posee no está autorizado por Abraxas Labs. Sin garantía.