[TLP:CLEAR]
bollettino di sicurezza 2026/0260
Aggiornamenti Postgresql
03-11-2026
postgresql, psqlodbc, sql-injection, buffer-overflow, odbc, out-of-bounds-write
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 sfruttamentoTutte 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
|