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
cve-2026-31431 — Analisi - POC - Mitigazione | Kitploit
Strumenti/GitHubGitHub/sebastian294/cve-2026-31431
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitApprendimento e FormazioneBinary ExploitationLab e Pratica
GitHubsebastian294/cve-2026-31431

cve-2026-31431

Analisi - POC - Mitigazione

Vedi Repository
13 mesi 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 →
Condividi

CVE-2026-31431 — Copy Fail: Laboratorio di Ricerca LPE su Kernel Linux

Solo a scopo educativo. NON utilizzare su sistemi senza autorizzazione esplicita.


Indice

  • Descrizione della vulnerabilità
  • Componenti interessati
  • Come funziona
  • Setup del lab (Docker)
  • PoC — Dimostrazione
  • Mitigazione
  • Riferimenti

Descrizione della vulnerabilità

CampoValore
CVECVE-2026-31431
AliasCopy Fail
CVSS7.8 (High)
TipoLocal Privilege Escalation (LPE)
Kernel interessato2017 – 2026 (commit 72548b093ee3 in poi)
Fix upstreamcommit a664bf3d603d (revert del 2017)
Divulgazione29 aprile 2026 (Theori / Xint Code)

Copy Fail è un bug logico deterministico (non richiede race condition) nel sottosistema crittografico del kernel Linux. Permette a un utente senza privilegi di scrivere 4 byte controllati nella page cache di qualsiasi file leggibile del sistema, inclusi binari setuid come su o sudo.

Perché è particolarmente grave?

A differenza di vulnerabilità precedenti simili:


Componenti interessati

root@kitploit:~
Linux kernel — crypto/authencesn.c
  └── algif_aead (modulo AF_ALG)
        └── ottimizzazione in-place (commit 72548b093ee3, 2017)
              └── scrittura scratch AEAD → supera il confine dello scatterlist
                    └── scrive 4 byte nella page cache di un file esterno

Distribuzioni interessate: Ubuntu, Debian, RHEL, Amazon Linux, SUSE, Fedora, Arch, AlmaLinux — qualsiasi distribuzione con kernel ≥ 2017.


Come funziona

Root cause

Nel 2017 è stata introdotta un'ottimizzazione per cui req->src e req->dst puntano allo stesso scatterlist combinato. Questo fa sì che le pagine della page cache (provenienti da splice()) vengano collegate direttamente nello scatterlist di destinazione scrivibile.

Catena di sfruttamento

root@kitploit:~
1. Aprire un socket AF_ALG con algoritmo authencesn
2. Usare splice() per alimentare pagine della page cache del binario target
   verso il socket AF_ALG (es: /usr/bin/sudo)
3. Eseguire un'operazione di decifratura AEAD
4. authencesn usa il buffer di destinazione come scratch pad →
   scrive seqno_hi (4 byte controllati) FUORI dall'output legittimo,
   superando il confine dello scatterlist
5. I 4 byte finiscono nella pagina della page cache del binario target
6. Il file su disco NON cambia → i controlli di integrità non rilevano nulla
7. Il binario modificato in memoria esegue il payload → root

Perché è furtivo

La scrittura bypassa il normale percorso VFS di scrittura. Il file su disco rimane intatto. Strumenti come sha256sum, aide, tripwire o inotify non rilevano la modifica perché operano sul file su disco o sull'inode, non sulla page cache in memoria.


Setup del lab (Docker)

Il lab utilizza un kernel vulnerabile per dimostrare la corruzione della page cache. In ambienti Docker, l'escalation completa dei privilegi dipende dalla configurazione dell'host (kernel condiviso).

root@kitploit:~
# Clonare il repo

cd cve-2026-31431

# Costruire l'immagine vulnerabile
docker build -t copyfail-lab -f docker/Dockerfile.vulnerable .

# Eseguire il lab
docker run --rm -it \
  --cap-add=NET_ADMIN \
  --security-opt seccomp=unconfined \
  copyfail-lab bash

# All'interno del contenitore:
cd /lab
python3 exploit/poc.py

Requisiti

  • Docker ≥ 20.x
  • Kernel dell'host: Ubuntu/Debian con kernel 5.x o 6.x non patchato (vedi tabella in docs/)
  • Python 3.10+ nel contenitore (per os.splice)

PoC — Dimostrazione

Vedi exploit/poc.py e exploit/README.md.

Il PoC dimostra:

  1. Corruzione della page cache (verificabile)
  2. Scrittura di 4 byte controllati nel file target
  3. LPE completo: dipende dal kernel dell'host (vedi note)

Mitigazione

Vedi mitigation/README.md per istruzioni dettagliate.

TL;DR — Mitigazione immediata (senza riavvio):

root@kitploit:~
# Disabilitare il modulo interessato
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo modprobe -r algif_aead 2>/dev/null || true

Fix definitivo: Aggiornare il kernel a una versione patchata (dopo a664bf3d603d).


Struttura del repo

root@kitploit:~
cve-2026-31431/
├── README.md                    ← questo file
├── docs/
│   ├── technical-analysis.md    ← analisi tecnica approfondita
│   └── affected-kernels.md      ← tabella versioni affette/patchate
├── exploit/
│   ├── README.md                ← documentazione del PoC
│   └── poc.py                   ← proof of concept (Python 3.10+)
├── mitigation/
│   ├── README.md                ← guida alla mitigazione
│   ├── disable-algif.conf       ← configurazione modprobe
│   └── check-vulnerable.sh      ← script di rilevamento
├── docker/
│   ├── Dockerfile.vulnerable    ← lab vulnerabile
│   └── Dockerfile.patched       ← lab con mitigazione applicata
└── scripts/
    └── setup-lab.sh             ← automazione del lab

Cronologia della divulgazione


Riferimenti

  • Xint Code — Copy Fail writeup ufficiale
  • copy.fail — sito dell'advisory
  • GitHub ufficiale — theori-io/copy-fail-CVE-2026-31431
  • NVD — CVE-2026-31431
  • Ubuntu Security Advisory
  • Microsoft Security Blog
  • Unit 42 — Palo Alto Analysis
  • Upstream fix commit a664bf3d603d

Scarica lo strumento
VulnTipoRichiede race?Portabile?Dimensione exploit
Dirty Cow (CVE-2016-5195)CoW raceSìParziale~KB
Dirty Pipe (CVE-2022-0847)pipe bufferNoLimitate~KB
Copy Fail (CVE-2026-31431)LogicoNoTotale732 byte
DataEvento
2017Commit 72548b093ee3 introduce il bug nel kernel
~2025Theori/Xint Code inizia l'analisi del sottosistema crypto
28 apr 2026Coordinamento con i distributori
29 apr 2026Divulgazione pubblica + PoC pubblicato
1 mag 2026Kernel patchati disponibili nei repo di produzione
1 mag 2026Aggiunto al catalogo CISA KEV