
PoC per CVE-2026-9082 (Drupal SA-CORE-2026-004) Drupal Core SQLi
Disclaimer: Questa prova di concetto è solo a scopo educativo e di ricerca. Non utilizzare questo software contro sistemi che non possiedi o per i quali non hai avuto esplicita autorizzazione al test. L'autore non si assume alcuna responsabilità per usi impropri o danni causati da questo progetto.
Una prova di concetto (poc.py) di CVE-2026-9082 (Drupal SA-CORE-2026-004), una vulnerabilità critica di SQL injection nel core di Drupal che può consentire a un attaccante di inviare query SQL arbitrarie quando Drupal è configurato per utilizzare un backend di database PostgreSQL.
Deriva dal traduttore di condizioni per query di entità PostgreSQL del core di Drupal, in cui le chiavi di array in un filtro IN di una query di entità possono essere manipolate da un attaccante per iniettare frammenti SQL arbitrari.
Questa PoC interagisce con il layer JSON:API di Drupal, iniettando una condizione SQL malformata che provoca un errore HTTP 500 Internal Server Error nelle versioni vulnerabili, mentre le versioni patchate sanitizzano correttamente le chiavi delle query e prevengono l'eccezione.
CVE ID: CVE-2026-9082
SA-CORE ID: SA-CORE-2026-004
Punteggio CVSS: 6.5 (MEDIUM)
Vettore CVSS: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
Categoria: SQL injection
Impatto: Bypass dell'autenticazione, divulgazione di informazioni, escalation dei privilegi, esecuzione remota di codice (a seconda della configurazione)
Versioni interessate (core di Drupal):
>= 8.9.0, < 10.4.10>= 10.5.0, < 10.5.10>= 10.6.0, < 10.6.9>= 11.0.0, < 11.1.10>= 11.2.0, < 11.2.12>= 11.3.0, < 11.3.10È sufficiente eseguire
make
Forniamo un laboratorio di riproduzione docker-compose che utilizza:
Entrambe le configurazioni includono:
/jsonapi/node/article senza autenticazione (configurazione comune in molti siti Drupal)article per garantire che il filtraggio su /jsonapi/node/article funzioni in modo realistico
I file del sito e il contenuto del database sono già preparati in sites.tar.gz e init.sql.gzAl momento della stesura, Drupal 11.2.12 non è ancora disponibile su Docker Hub, quindi creiamo un'immagine personalizzata installata con composer.