
Proof-of-concept e pacchetto lab per CVE-2026-48356, un caricamento di file non autenticato e senza restrizioni nelle opzioni personalizzate REST del carrello ospite di Magento Open Source.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-48356
Magento Open Source 2.4.8-p5 — Adobe
Adobe Commerce è interessato da una vulnerabilità di caricamento senza restrizioni di file con tipo pericoloso che potrebbe comportare l'esecuzione di codice arbitrario nel contesto dell'utente corrente.
| CVE | CVE-2026-48356 · CVE.org |
| CWE | CWE-434 |
| CVSS | Critico: 9.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N |
| Prodotto | Magento Open Source |
| Interessate | tutte le versioni fino alla 2.4.8-p5 (inclusa) |
| Corretta | 2.4.8-2026-jul / APSB26-73 e successive |
| Auth | non autenticato (vedi source map) |
| Licenza | GNU Affero GPL v3.0 |
| Lab | solo 127.0.0.1 · pacchetto di divulgazione per il fornitore/cliente, non uno scanner |
ImageContentValidator consente qualsiasi nome file senza punteggiatura proibita. ImageProcessor::getFileName mantiene l'estensione del chiamante. Nessun controllo option_id / option-type su file_info del carrello guest. Hotfix APSB26-73 / 2.4.8-2026-jul.
POST/rest/default/V1/guest-carts/{cartId}/itemsPOST /rest/default/V1/guest-carts restituisce l'id del carrelloPOST /rest/default/V1/guest-carts/{id}/items con custom_options file_info GIF89a + <?= witness ?> denominato GHSA48356-WITNESS.phpMagento\Framework\Api\ImageContentValidator::isValid solo getimagesizefromstringMagento\Catalog\Model\Webapi\Product\Option\Type\File\Processor scrive pub/media/custom_options/quote/.../GHSA48356-WITNESS.phpIl JSON HTTP di add-item del guest-cart contiene GHSA48356-WITNESS.php
Fai questo per primo: Aggiorna Magento Open Source a 2.4.8-2026-jul / APSB26-73 o successiva.
Verifica dopo l'aggiornamento
CVE-2026-48356-Abraxas-Labs.py sulla build corretta: il witness mappato non deve comparire.Se non puoi aggiornare immediatamente
Prendi di mira solo http://127.0.0.1:8088 (o il loopback su cui hai fatto il bind). Non puntare questo script verso Internet.
python3 CVE-2026-48356-Abraxas-Labs.py
Il successo è il witness sopra nel corpo della risposta. Un generico HTML 200 non lo è.
Stack loopback usato per la riproduzione. Immagini ufficiali a meno che un Dockerfile in questa cartella non compili dal sorgente.
cd lab
docker compose up --force-recreate
Collega l'albero del prodotto vulnerabile accanto a Compose se lo YAML monta una directory locale (zip del plugin / tag del sorgente dalla tabella delle versioni). Non pubblicare nulla tranne 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.
Questo pacchetto di divulgazione è concesso in licenza sotto la GNU Affero General Public License v3.0. Vedi LICENSE.
Questo pacchetto è destinato al fornitore, al proprietario del sito e ai lab autorizzati. Lo script comunica con 127.0.0.1. L'uso contro sistemi di cui non sei proprietario non è autorizzato da Abraxas Labs. Nessuna garanzia.