← Blog
Drupal CommerceCVE-2026-118539Access BypassSicurezza E-commerce

Drupal Commerce CVE-2026-118539: access bypass sotto attacco

Drupal classifica CVE-2026-118539 in Commerce Core come altamente critica e già sfruttata. Versioni corrette, come verificare la tua e il runbook di remediation.

Zero Hunt Research··7 min di lettura

Pubblicato da Zero Hunt, un red team AI autonomo su un'appliance on-premise con AI privata: penetration test automatizzato per reti e infrastrutture, in black box o gray box, con una persona che approva ogni passo che conta.

Il team di sicurezza di Drupal ha classificato come "altamente critica" e già sotto attacco una falla in Commerce Core — il modulo dietro buona parte dei negozi online basati su Drupal — e ha deliberatamente omesso i dettagli tecnici che permetterebbero ai difensori di scrivere una regola di detection. Se gestisci un negozio Drupal, la finestra per applicare la patch e controllare gli ordini è adesso, non dopo il weekend.

Notizia in evoluzione — pubblicata alle 09:54 (08:54 UTC) del 30 ottobre 2026. Aggiornata man mano che vendor e CISA pubblicano.

In breve

CVE CVE-2026-118539
Prodotto / versioni colpite Drupal Commerce Core (modulo contrib commerce) · tutte le release sotto 8.x-2.41; dalla 3.0.0 alla 3.3.12
Corretta in 8.x-2.41 (ramo legacy 2.x) · 3.3.13 (ramo 3.x) · rilasciate il 2026-10-28
CVSS NVD non ancora assegnato (stato "Received", 2026-10-30) · Drupal la valuta Altamente critica, 21/25, vettore AC:None · A:None · CI:Some · II:Some · E:Exploit · TD:All
Sfruttata attivamente Sì · dichiarato nell'advisory Drupal SA-CONTRIB-2026-254
CISA KEV Non presente (catalogo versione 2026.10.29)
PoC pubblico Nessuno citato dalle fonti al 2026-10-30; il vettore di rischio di Drupal indica codice di exploit già in circolazione (E:Exploit)
Advisory ufficiale SA-CONTRIB-2026-254

Cosa è successo

CVE-2026-118539 è una falla di autorizzazione mancante (CWE-862) in Drupal Commerce Core, il livello commerce open source che fornisce carrello, checkout, entità ordine e prodotto agli storefront Drupal, inclusi i front-end decoupled che vi dialogano via API. L'advisory Drupal SA-CONTRIB-2026-254, datato 2026-10-28, la valuta Altamente critica a 21 su 25 e afferma senza giri di parole: "This vulnerability is being actively exploited in the wild."

Il meccanismo, nelle parole dell'advisory, è che "the module doesn't sufficiently protect certain routes and entity fields, leading to an access bypass." Il record NVD, pubblicato il 2026-10-30 e ancora senza punteggio, dà la classe tecnica in una riga: la falla "allows Forceful Browsing." Il forceful browsing significa che un attaccante raggiunge URL, route ed entity field richiedendoli direttamente — l'applicazione non applica mai il controllo di accesso che avrebbe dovuto. Il vettore di rischio di Drupal esplicita le conseguenze: AC:None (all'attaccante basta visitare una pagina), A:None (nessuna autenticazione richiesta), CI:Some (vengono rilasciati alcuni dati non pubblici), II:Some (alcuni dati possono essere modificati).

In un contesto commerce, "alcuni dati possono essere modificati" e "può avere un impatto economico sul venditore" non sono astrazioni. Totali degli ordini, prezzi delle singole righe, stato di sconti e coupon, stato di evasione: sono esattamente gli entity field che un modulo carrello espone, e sono esattamente i campi che un venditore non può permettersi che un visitatore anonimo raggiunga o riscriva. Drupal non ha pubblicato quali route, quali campi o cosa fanno gli attacchi osservati — solo che stanno avvenendo e che i negozi dovrebbero controllare i propri ordini. Il modulo riporta circa 42.000 installazioni attive sulla sua pagina di progetto Drupal.org, secondo securityonline.info.

"Sites should audit their orders for inconsistencies as this vulnerability is being actively exploited." — SA-CONTRIB-2026-254, l'unica indicazione di detection fornita da Drupal

Quella frase è tutto il problema. Senza IOC, senza nomi di route e senza una firma nei log, il consiglio del vendor è una revisione manuale e a posteriori degli ordini. Intercetta la frode che già si vede; non fa nulla per l'accesso a dati non pubblici che non lascia alcun segno sul totale di un ordine.

Chi è esposto e come verificare la versione

Sei colpito se usi Commerce Core sotto 8.x-2.41 sul ramo legacy 2.x, o qualsiasi release 3.x precedente alla 3.3.13. Verifica la versione installata prima di ogni altra cosa:

# Siti gestiti con Composer
composer show drupal/commerce | grep versions

# Drush, su qualsiasi sito
drush pm:list --type=module --status=enabled | grep -i commerce

# Oppure leggila direttamente dai metadati del modulo
grep -E '^version' web/modules/contrib/commerce/commerce.info.yml

Se la versione è inferiore alle release corrette indicate sopra, considera il sito esposto. La falla non richiede credenziali né configurazioni particolari — il vettore di Drupal indica TD:All, cioè ogni configurazione del modulo è sfruttabile.

Remediation

1. Sono colpito? Esegui il controllo di versione sopra. Qualsiasi versione sotto 8.x-2.41 (2.x) o sotto 3.3.13 (3.x) rientra nell'ambito, a prescindere da come è configurato il negozio.

2. Patch — versioni corrette esatte. Installa l'ultima release per il tuo ramo, alla lettera come indica l'advisory:

  • Ramo 3.x → aggiorna a Commerce Core 3.3.13 (composer require drupal/commerce:^3.3.13)
  • Ramo legacy 2.x → aggiorna a Commerce Core 8.x-2.41 (composer require drupal/commerce:^2.41)

Dopo l'aggiornamento del pacchetto esegui drush updatedb e svuota le cache (drush cr), così che le definizioni di entità e route vengano ricostruite.

3. Non puoi applicare subito la patch? Controlli compensativi. Riducono l'esposizione; non sostituiscono la correzione, perché Drupal non ha indicato le route vulnerabili e quindi nessuna regola di edge può dirsi completa. Comunque, in ordine di utilità: metti lo storefront dietro un WAF o reverse proxy e nega l'accesso anonimo ai percorsi amministrativi e alle API commerce che non servi pubblicamente; rivedi i permessi concessi ai ruoli anonymous e authenticated per tutto ciò che riguarda commerce e rimuovi il superfluo; se esponi Commerce su una superficie decoupled/JSON:API che non usi, disabilitala. Applica rate-limit alle richieste anonime verso /cart, /checkout e gli endpoint degli ordini.

4. Caccia alla compromissione. Prima l'onestà: Drupal non ha pubblicato IOC, quindi questa è comportamentale, non basata su firme.

  • Segui l'istruzione del vendor — controlla gli ordini per incongruenze: prezzi, totali, sconti o coupon applicati inattesi e cambi di stato che non hai avviato (manipolazione di dati memorizzati, ATT&CK T1565.001).
  • Esamina i log del web server e di accesso di Drupal per richieste anonime o a basso privilegio che hanno raggiunto route di ordini, prezzi prodotto o checkout restituendo 200 anziché 403 — l'impronta del forceful browsing contro un'applicazione esposta (T1190).
  • Cerca accessi ai dati senza una corrispondente modifica d'ordine: letture di dati clienti o ordini che avrebbero dovuto richiedere autenticazione.

5. Bonifica e verifica. Dopo la patch: annulla o metti in quarantena gli ordini fraudolenti; ruota eventuali API key o credenziali OAuth usate dai front-end decoupled o dalle integrazioni di pagamento che toccano Commerce, nel caso sia stata letta configurazione non pubblica; poi conferma che la correzione tenga ri-testando che le richieste anonime verso le route prima raggiungibili ora restituiscano 403. Verificare dopo la patch è il passo che la maggior parte dei team salta.

Cosa non si sa ancora

  • Nessun CVSS ufficiale. NVD elenca il CVE come "Received" e senza punteggio; l'unica valutazione di gravità è il 21/25 di Drupal.
  • Quali route e campi. Drupal ha omesso i dettagli per rallentare gli imitatori, quindi i difensori non possono scrivere una regola precisa né confermare l'esposizione dal solo advisory.
  • Scala e attribuzione. Nessun conteggio dei negozi colpiti, nessun attore, nessuna data di inizio, nessun campione del traffico d'attacco.
  • Nessun PoC pubblico o IOC è citato da una fonte verificabile, benché il vettore E:Exploit di Drupal dica che codice di exploit funzionante è già in circolazione.
  • CISA KEV. Non presente alla versione di catalogo 2026.10.29; può cambiare in pochi giorni per una falla così diffusa e confermata sfruttata.

Dimostrare l'esposizione quando il vendor non dice come

La parte scomoda di questa disclosure è strutturale: Drupal ha fatto la cosa responsabile e ha omesso i nomi di route e campi, il che significa che il riflesso difensivo abituale — dare il CVE a uno scanner e aspettare una firma — non restituisce nulla di utile. Resti con la domanda "sono davvero raggiungibile?" e nessun modo di rispondere partendo dall'advisory.

È la domanda a cui un red team autonomo basato su AI è costruito per rispondere. Zero Hunt gira on-premise sui propri modelli privati: per un caso come questo identifica la versione esatta di Commerce Core installata sul target e ne analizza in gray-box il sorgente di quella versione alla ricerca del varco di controllo accessi raggiungibile da input, invece di confrontare un pattern ricevuto. Il suo Exploit Forge itera poi una proof-of-concept eseguibile contro la tua configurazione finché non dimostra che una richiesta non autenticata raggiunge una route o un campo d'ordine protetto — oppure che non lo fa — con ogni passo sotto approvazione di un operatore (human in the loop) e firmato alla scrittura per la catena di prove. È un verdetto sul tuo negozio, non una media di settore, ed è lo stesso tipo di validazione gray-box e source-informed descritta nella nostra guida al penetration test automatico. Per gli storefront che trattano carte, è anche l'evidenza che un valutatore PCI DSS Requisito 11.4 chiederà dopo un evento di sfruttamento attivo.

Il lato traffico chiude il varco che la revisione degli ordini lascia aperto. Il modello di traffico deep-learning di Zero Hunt — quattro teste di inferenza sulla GPU dell'apparato — legge le richieste anonime e a basso privilegio che raggiungono route commerce protette come l'anomalia che sono, mentre il forceful browsing sta avvenendo, non nel report ordini del mattino dopo. Per la seconda piattaforma e-commerce sotto attacco di massa questo mese dopo Adobe Commerce CVE-2026-48356, la differenza tra vederlo in tempo reale e leggerne dopo è la differenza tra un incidente contenuto e una disclosure tua.

Tutte le vulnerabilità che CISA segnala come sfruttate, con le scadenze federali: tracker CISA KEV →

Una patch per ogni CVE? Un programma CTEM verifica quali esposizioni sono davvero sfruttabili prima del prossimo advisory: cos'è il CTEM →

È sfruttabile nel tuo ambiente?

Zero Hunt lo verifica sulla tua rete: un red team AI autonomo su un'appliance on-premise, con AI privata, in black box o gray box e con una persona che approva ogni passo che conta. La prova di cosa è sfruttabile, la correzione e le evidenze firmate — nessun dato esce dal tuo perimetro.