
CVE-2026-48095
7-Zip è un archiviatore di file con un elevato rapporto di compressione. Le versioni 26.00 e precedenti presentano una vulnerabilità di heap buffer overflow causata da una sotto-allocazione nel buffer del flusso compresso NTFS (shift UB in GetCuSize), che potenzialmente consente agli aggressori di causare l'esecuzione di codice arbitrario o il crash dell'applicazione. CInStream::GetCuSize() nell'handler NTFS calcola la dimensione del buffer dell'unità di compressione come (UInt32)1 << (BlockSizeLog + CompressionUnit), e un'immagine appositamente predisposta con ClusterSizeLog >= 28 e CompressionUnit == 4 porta l'esponente a 32, che è un comportamento indefinito e collassa su x86/x64, quindi _inBuf viene allocato come 1 byte. ReadStream_FALSE scrive quindi fino a 256 MB di dati controllati dall'aggressore in quel buffer da 1 byte in iterazioni da 64 KB e, poiché l'oggetto CInStream si trova solo 304 byte dopo _inBuf, il suo puntatore alla vtable viene sovrascritto e la successiva chiamata dispatchata realizza un dirottamento della vtable. Nelle build a 32 bit l'overflow viene raggiunto incondizionatamente; su 64 bit richiede che l'allocazione parallela di 8 GB di _outBuf abbia successo, altrimenti il fallimento chiude in denial of service. L'handler NTFS è abilitato per impostazione predefinita in 7z.dll standard e, tramite il fallback basato sulla firma che corrisponde a "NTFS " all'offset 3, aprirà un'immagine appositamente predisposta indipendentemente dall'estensione del file durante l'estrazione o il test. La versione 26.01 corregge il problema.
Usa questo progetto solo in ambienti sicuri e autorizzati come:
Esempio di configurazione:
git clone <repository-url>
cd <repository-name>
Esempio di utilizzo:
# Installa le dipendenze
# Esegui il progetto
python cve-2026-48095.py
# Specifica il nome del file di output
python cve-2026-48095.py poc_ntfs_sparse.zip
Un repository per apprendere, testare e ricercare concetti di cybersecurity in ambienti controllati.
Questo repository è destinato esclusivamente alla ricerca sulla sicurezza educativa e autorizzata.
È progettato per aiutare gli utenti a conoscere:
Usa questo repository solo in ambienti in cui hai il permesso, come:
L'uso non autorizzato o illegale è severamente vietato.
L'autore e i collaboratori non sono responsabili per qualsiasi danno, uso improprio, problema legale o perdita causata da questo progetto.
Usando questo repository, accetti che:
Questo progetto è pensato per:
Si prega di seguire le pratiche di divulgazione responsabile e di rispettare tutte le leggi applicabili.
Per divulgazione responsabile o collaborazione, contatta il mantenitore del repository tramite GitHub.