Bollettino 2026/0260

[TLP:CLEAR]

bollettino di sicurezza 2026/0260

Aggiornamenti Postgresql

03-11-2026

postgresql, psqlodbc, sql-injection, buffer-overflow, odbc, out-of-bounds-write

Aggiornamenti Postgresql

descrizione

PostgreSQL ODBC ha rilasciato psqlODBC 18.00.0006, nuova versione del driver ODBC ufficiale di PostgreSQL, che corregge 11 vulnerabilità

Le tipologie di vulnerabilità presenti nelle 11 CVE sono:

- SQL Injection per mancata sanitizzazione di nomi di tabella, schema o colonna forniti dall'applicazione o dal server nelle query di catalogo e nelle clausole WHERE di cursori aggiornabili
- Stack-based buffer overflow nel parser degli escape ODBC con array a dimensione fissa non verificata, nella copia di valori ctid/oid e nel quoting di nomi lunghi di schema e tabella
- Out-of-bounds read/write per mancata validazione di numeri di colonna, indici di riga e contatori forniti dal server
- Heap out-of-bounds write nel cache delle righe quando una risposta FETCH successiva modifica il numero di colonne
- Buffer overflow classico nella copia della risposta a una lettura large-object senza confronto con la dimensione del buffer applicativo
- Use of externally-controlled format string per utilizzo del nome di colonna fornito dal server come stringa di formato printf
- Link following e permessi errati sui file di log creati in /tmp con permessi world-readable e risoluzione di symlink

6 CVE hanno priorità operativa critical.

Al momento della pubblicazione di questo bollettino, non risultano CVE nel catalogo CISA KEV, exploit in the wild o proof-of-concept pubblici.

note

Vettori di attacco e condizioni di sfruttamento

Tutte le CVE sono sfruttabili via rete (AV:N), ad eccezione di CVE-2026-120066 che richiede accesso locale (AV:L). La complessità di attacco è alta (AC:H) in tutti i casi. Per CVE-2026-120062, CVE-2026-120061, CVE-2026-120064, CVE-2026-120065, CVE-2026-120063 e CVE-2026-120066 è richiesto un livello di privilegio basso (PR:L); per CVE-2026-120058, CVE-2026-120057, CVE-2026-120059, CVE-2026-120067 e CVE-2026-120060 non sono richiesti privilegi (PR:N). CVE-2026-120065, CVE-2026-120058, CVE-2026-120057, CVE-2026-120059 e CVE-2026-120060 richiedono interazione dell’utente (UI:R); le restanti non la richiedono (UI:N).

Analisi delle CVE con priorità operativa critical

CVE-2026-120062: SQL Injection in SQLSpecialColumns per splicing diretto di nomi di tabella e schema nella query di catalogo senza escaping, a differenza delle altre funzioni di catalogo del driver. Un'applicazione che passa nomi non fidati a SQLSpecialColumns consente l'esecuzione di SQL arbitrario con i privilegi della connessione.

CVE-2026-120061: Stack-based buffer overflow nel parser degli escape ODBC: gli offset degli argomenti di un escape {fn} vengono scritti in un array stack fisso da 16 elementi senza bound check e senza inizializzazione; la copia di {d}/{t}/{ts}/{escape} scrive anche un byte oltre un buffer stack da 128 byte. Un'applicazione che inoltra SQL non fidato al driver espone il proprio processo a corruzione di memoria.

CVE-2026-120064: Mancata validazione di numeri di colonna e indici di riga usati come indici di array: SQLBindCol con numero di colonna superiore a 32767 produce un conteggio negativo; SQLColAttribute con numero molto grande usa un indice negativo; SQLSetPos(SQL_ADD) non verifica il numero di riga rispetto al rowset. Il risultato è out-of-bounds read e write.

CVE-2026-120065: SQL Injection tramite nome di colonna fornito dal server: psqlODBC inserisce il nome della colonna chiave tra doppi apici nelle query keyset e nelle clausole WHERE di SELECT/UPDATE/DELETE posizionati senza raddoppiare i doppi apici presenti nel nome. Chiunque abbia i privilegi per creare una tabella con un nome di colonna contenente un doppio apice, o un server non fidato sotto le impostazioni SSL correnti, può alterare l'SQL eseguito dal driver con i privilegi dell'applicazione.

CVE-2026-120058: Out-of-bounds write nel cache delle righe con UseDeclareFetch abilitato: il driver dimensiona il cache dal conteggio colonne del primo risultato, ma ricalcola tale conteggio a ogni FETCH successivo senza verificare la corrispondenza; un server non fidato può rispondere con più colonne e provocare scrittura oltre il limite dell'allocazione heap. Un conteggio di campo inferiore al numero di campi chiave causa underflow della variabile unsigned.

CVE-2026-120057: Buffer overflow nella copia della risposta loread: psqlODBC usa la lunghezza inviata dal server per copiare i dati nel buffer applicativo senza confrontarla con la dimensione del buffer. Un server non fidato o un man-in-the-middle può inviare più byte del previsto e sovrascrivere memoria adiacente nel processo client con byte scelti dal server.

Scope e impatto

Tutte le CVE hanno scope unchanged (S:U). Il pattern prevalente per le CVE con priorità operativa critical è C:H/I:H/A:H (CVE-2026-120062, CVE-2026-120061, CVE-2026-120064, CVE-2026-120065, CVE-2026-120058, CVE-2026-120057), con impatto elevato su riservatezza, integrità e disponibilità. CVE-2026-120059 presenta C:H/I:N/A:H. CVE-2026-120063 presenta C:N/I:L/A:H. CVE-2026-120067 presenta C:N/I:N/A:H, con impatto sulla sola disponibilità. CVE-2026-120060 presenta C:L/I:N/A:H. CVE-2026-120066 ha C:H/I:L/A:N, con impatto sulla riservatezza ma nessuna incidenza sulla disponibilità.

CVE

CVE CVSS EPSS priority 0-day
CVE-2026-120062 3.1: 7.5/high 0.357% | 29.55% 11.1/critical no
CVE-2026-120061 3.1: 7.5/high 0.342% | 27.87% 10.9/critical no
CVE-2026-120064 3.1: 7.5/high 0.342% | 27.87% 10.9/critical no
CVE-2026-120065 3.1: 7.1/high 0.294% | 22.09% 9.6/critical no
CVE-2026-120058 3.1: 7.5/high 0.255% | 17.20% 9.4/critical no
CVE-2026-120057 3.1: 7.5/high 0.244% | 15.73% 9.1/critical no
CVE-2026-120059 3.1: 6.8/medium 0.261% | 17.91% 8.6/high no
CVE-2026-120067 3.1: 5.9/medium 0.348% | 28.51% 8.6/high no
CVE-2026-120063 3.1: 5.9/medium 0.271% | 19.41% 7.7/high no
CVE-2026-120060 3.1: 5.9/medium 0.216% | 12.14% 6.6/high no
CVE-2026-120066 3.1: 5.3/medium 0.114% | 1.46% 2.0/low no

NOTA: Le vulnerabilità sono ordinate per priorità operativa, calcolata combinando la gravità teorica (CVSS) con la probabilità reale di sfruttamento (EPSS). Se il dato EPSS non è ancora disponibile, la priorità è calcolata sul solo score CVSS.
Approfondisci

elenco vulnerabilità

CWE descrizione
CWE-120 Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')
CWE-191 Integer Underflow (Wrap or Wraparound)
CWE-787 Out-of-bounds Write
CWE-121 Stack-based Buffer Overflow
CWE-193 Off-by-one Error
CWE-457 Use of Uninitialized Variable
CWE-89 Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
CWE-129 Improper Validation of Array Index
CWE-190 Integer Overflow or Wraparound
CWE-134 Use of Externally-Controlled Format String
CWE-125 Out-of-bounds Read
CWE-59 Improper Link Resolution Before File Access ('Link Following')
CWE-732 Incorrect Permission Assignment for Critical Resource

prodotti impattati

vendor prodotto & versioni
Postgresql psqlodbc
  • prima di: 18.00.0006 (CVE-2026-120057, CVE-2026-120058, CVE-2026-120059, CVE-2026-120060, CVE-2026-120061, CVE-2026-120062, CVE-2026-120063, CVE-2026-120064, CVE-2026-120065, CVE-2026-120066, CVE-2026-120067)