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
postgresql-cve-2026-14662 — Vulnerabilità di scrittura fuori dai limiti trovata nella ricerca full-text di PostgreSQL (tsvector/tsquery) CVE-2026-14662: registrazione della verifica eseguita eseguendo in parallelo con Docker la versione non corretta (18.4) e quella corretta (18.6), insieme ai materiali di presentazione | Kitploit
Strumenti/GitHubGitHub/kihara-1/postgresql-cve-2026-14662
Analisi delle VulnerabilitàFuzzingPaper e RicercaApprendimento e FormazioneRisorse CurateSicurezza dei Database
GitHubkihara-1/postgresql-cve-2026-14662

postgresql-cve-2026-14662

Vedi Repository
15h 3m 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 →

Informazioni

Vulnerabilità di scrittura fuori dai limiti trovata nella ricerca full-text di PostgreSQL (tsvector/tsquery) CVE-2026-14662: registrazione della verifica eseguita eseguendo in parallelo con Docker la versione non corretta (18.4) e quella corretta (18.6), insieme ai materiali di presentazione

Condividi

Alla ricerca di CVE-2026-14662 — Vulnerabilità di scrittura fuori dai limiti nella ricerca full-text di PostgreSQL

Questo è il resoconto di come ho eseguito simultaneamente in Docker la versione precedente alla correzione (18.4) e quella successiva (18.6) di PostgreSQL per osservare concretamente la differenza di comportamento riguardo alla CVE-2026-14662, una vulnerabilità trovata nei tipi di dati per la ricerca full-text (tsvector / tsquery).

Il materiale è stato preparato a scopo di apprendimento sulla sicurezza e include anche le slide della presentazione.

Panoramica della vulnerabilità

VoceContenuto
CVECVE-2026-14662
Oggettotsvector / tsquery di PostgreSQL
TipoDimensione di allocazione insufficiente e scrittura fuori dai limiti dovute a integer wraparound
CVSS8.8 / 10.0 (High)
Data di pubblicazione2026-08-13
Versioni corrette18.5, 17.11, 16.15, 15.19, 14.24

La catena delle debolezze è la seguente.

root@kitploit:~
CWE-190 (Integer Overflow) → CWE-131 (Calcolo errato della dimensione del buffer) → CWE-787 (Scrittura fuori dai limiti)
=Causa principale                                                        =Impatto finale

Struttura del repository

root@kitploit:~
.
├── docs/
│   └── presentation.md   Slide della presentazione (spiegazione della vulnerabilità + spiegazione delle CWE)
└── docker/
    ├── README.md         Istruzioni per l'ambiente di riproduzione
    ├── docker-compose.yml
    ├── init/             SQL di inizializzazione comune eseguito su entrambe le versioni
    ├── test/             PoC e SQL per la demo
    └── run.sh            Avvio → esecuzione del PoC → visualizzazione dei risultati

Come provarlo

Se hai Docker e Docker Compose, puoi riprodurre il tutto con il solo comando seguente.

root@kitploit:~
cd docker
./run.sh

Verranno avviati i container di 18.4 e 18.6, verrà caricato lo stesso SQL di inizializzazione su entrambi e lo stesso PoC verrà eseguito su entrambi, mostrando i risultati affiancati. Per i dettagli, consulta docker/README.md.

Risultati osservati

TestPostgreSQL 18.4 (pre-correzione)PostgreSQL 18.6 (post-correzione)
Ripetizione dell'auto-OR di tsquerySuccesso senza errori fino a 18 volte (finale: 8.650.748 byte)ERROR: tsquery is too large alla 17ª iterazione
Array di parole con lunghezza totale di 1.200.000 byteHa successoERROR: string is too long for tsvector (1200000 bytes, max 1048575 bytes)
Una singola parola di 3.000 byteHa successoERROR: word is too long (3000 bytes, max 2046 bytes)

Nella versione pre-correzione, i dati che superano il limite della rappresentazione interna (MAXSTRPOS = 1.048.575, derivante dal campo di bit a 20 bit) vengono accettati senza generare alcun errore.

Il motivo per cui 18.6 si ferma "esattamente alla 17ª iterazione" è spiegabile con un calcolo, e ho confermato che il valore teorico e quello misurato coincidono byte per byte (dettagli nelle slide della presentazione).

Sul sorgente di PostgreSQL

Per verificare le differenze ho usato un clone del repository ufficiale di PostgreSQL, ma non è incluso in questo repository perché è molto grande (185MB ciascuno). Se necessario, puoi ottenerlo come segue.

root@kitploit:~
git clone --branch REL_18_4 --depth 1 https://github.com/postgres/postgres.git postgres-18.4
git clone --branch REL_18_6 --depth 1 https://github.com/postgres/postgres.git postgres-18.6

I file che sono stati corretti sono i seguenti tre.

  • src/backend/utils/adt/tsquery_util.c
  • src/backend/utils/adt/tsvector.c
  • src/backend/utils/adt/tsvector_op.c

Avvertenze

  • Il PoC qui incluso serve a verificare che i controlli sui limiti funzionino nella versione corretta, per una vulnerabilità già corretta e pubblicata. Non contiene exploit per l'esecuzione di codice arbitrario.
  • Esegui tutto all'interno di container Docker usa-e-getta. Non eseguirlo in ambienti di produzione.
  • La classificazione CWE di questo repository è un'analisi dell'autore basata sul testo dell'advisory ufficiale (l'advisory ufficiale non riporta esplicitamente i numeri CWE).

Riferimenti

  • Advisory ufficiale CVE-2026-14662
  • CWE-787: Out-of-bounds Write
  • CWE-190: Integer Overflow or Wraparound
  • CWE-131: Incorrect Calculation of Buffer Size
Scarica lo strumento