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
Strumenti/GitHubGitHub/var77/cve-2026-2005
Escalation di PrivilegiMemory ForensicsAnalisi delle VulnerabilitàExploitApprendimento e FormazioneSicurezza dei DatabaseBinary Exploitation
GitHubvar77/cve-2026-2005

CVE-2026-2005

PoC per CVE-2026-2005

Vedi Repository
265154 mesi faRevisionato da Kitploit

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-2005 - Exploit Heap Overflow in pgcrypto di PostgreSQL

Exploit PoC per un buffer overflow basato su heap nel parsing delle chiavi di sessione PGP dell'estensione pgcrypto di PostgreSQL, che porta a lettura/scrittura arbitraria della memoria e escalation dei privilegi a superuser.

Per tutti i dettagli tecnici, consulta l'advisory di Zeroday Cloud.

Demo

PoC Demo

Utilizzo

1. Compila PostgreSQL

Clona e compila PostgreSQL dal commit vulnerabile in modo che gli offset dei simboli del binario corrispondano esattamente. L'exploit risolve la base ASLR confrontando i puntatori ottenuti tramite leak con gli offset dei simboli ELF: build o versioni diverse avranno offset diversi e falliranno.

root@kitploit:~
git clone https://github.com/postgres/postgres.git
cd postgres
git checkout 4b324845ba5d24682b9b3708a769f00d160afbd7
./configure \
    --prefix="$HOME/projects/pg/pgsql" \
    --with-libxml \
    --with-libxslt \
    --enable-debug \
    --with-ssl=openssl
make -j$(nproc)
make install-world-bin

2. Installa le dipendenze Python

root@kitploit:~
pip install -r requirements.txt

3. Esegui l'exploit

root@kitploit:~
python poc.py \
    --binary "$HOME/projects/pg/pgsql/bin/postgres" \
    --dbname test-db \
    --host 127.0.0.1 \
    --port 5432 \
    --user test-user \
    --password secret \
    --cmd id

Opzioni

Flusso dell'exploit

L'exploit procede in 7 fasi:

  1. Heap pointer leak - Un messaggio PGP appositamente costruito corrompe l'header della chunk malloc del buffer mdst. Quando PostgreSQL chiama pfree() sulla chunk corrotta, l'allocatore emette un errore contenente l'indirizzo del puntatore, rivelando la posizione nell'heap di mdst->data.

  2. Lettura arbitraria - Un secondo overflow sovrascrive mdst->data per farlo puntare a (leaked_ptr - 0x10000). Dopo la decrittazione, mbuf_steal_data() restituisce il contenuto di quell'indirizzo come output decrittato, scaricando memoria heap che può contenere puntatori a codice obsoleti.

  3. Scansione dei puntatori - L'hex dump viene scansionato per valori little-endian a 8 byte che sembrano indirizzi di codice (>= 0x500000000000) ma non si trovano nella regione heap. Questi sono potenziali puntatori PIE (Position Independent Executable).

  4. Votazione per la base PIE - Ogni indirizzo candidato viene testato contro gli offset dei simboli ELF del binario di postgres. Per ogni coppia (addr - sym_offset) in cui l'offset di pagina corrisponde, viene espresso un voto. I candidati con 10 o più voti vengono mantenuti; la base più piccola (il PIE è il segmento ELF mappato all'indirizzo più basso) ordinata per voti è il candidato principale.

  5. Validazione della base PIE - Utilizzando la primitiva di lettura arbitraria, l'exploit legge in e lo confronta con l'OID noto della sessione. Una corrispondenza conferma la base PIE.

Requisiti

  • Python 3.10+
  • psycopg2-binary, pwntools, pycryptodome (pip install -r requirements.txt)
  • PostgreSQL compilato dal commit vulnerabile (4b324845) con pgcrypto abilitato

Disclaimer

Questo Proof of Concept è destinato esclusivamente a scopi educativi e di ricerca difensiva. Utilizzalo solo su sistemi di tua proprietà o per i quali hai esplicita autorizzazione a testare.

Riferimenti

  • CVE-2026-2005: Integer Overflow in pgcrypto di PostgreSQL per RCE
Scarica lo strumento
ArgomentoPredefinitoDescrizione
--binary(binario di postgres)Percorso del binario di postgres per l'estrazione dei simboli
--dbnamepostgresNome del database di destinazione
--hostlocalhostHost di PostgreSQL
--port5432Porta di PostgreSQL
--userpostgresUtente del database
--password(vuoto)Password del database
--cmdwhoamiComando di sistema da eseguire dopo l'escalation dei privilegi
--gdb(flag)Collega GDB tramite tmux al punto dell'overflow
CurrentUserId
(candidate_base + current_user_offset)
  • Scrittura arbitraria - L'overflow corrompe sia gli header MBuf di msrc che di mdst. I valori falsificati msrc->data/read_pos puntano a un pacchetto sym-encrypted incorporato contenente l'OID del superuser cifrato (10). Il valore falsificato mdst->data punta a CurrentUserId - 4 (il -4 tiene conto di SET_VARSIZE in pgp-pgsql.c:533 che scrive la lunghezza dell'output nei primi 4 byte).

  • Escalation dei privilegi - Con CurrentUserId sovrascritto a 10 (superuser di bootstrap), COPY FROM PROGRAM esegue il comando di sistema specificato come utente di sistema postgres.