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
copy-fail-CVE-2026-31431 — # Exploit di escalation dei privilegi locali per CVE-2026-31431, una sovrascrittura della page-cache AF_ALG + splice nel kernel Linux. Include PoC, script di rilevamento BPFtrace e ambiente di test QEMU per ricerca sulla sicurezza autorizzata. | Kitploit
Strumenti/GitHubGitHub/astounds/copy-fail-cve-2026-31431
Escalation di PrivilegiFramework di ExploitAnalisi delle VulnerabilitàExploitApprendimento e FormazioneBinary ExploitationLab e Pratica
GitHubastounds/copy-fail-cve-2026-31431

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

copy-fail-CVE-2026-31431

# Exploit di escalation dei privilegi locali per CVE-2026-31431, una sovrascrittura della page-cache AF_ALG + splice nel kernel Linux. Include PoC, script di rilevamento BPFtrace e ambiente di test QEMU per ricerca sulla sicurezza autorizzata.

Vedi Repository
44 mesi faNon ancora revisionato

CVE-2026-31431 — Copy Fail

Escalata di privilegi locale nel kernel Linux tramite AF_ALG + sovrascrittura della page cache con splice

CVE CVSS License

Solo per ricerca sulla sicurezza autorizzata, test di penetrazione e scopi educativi. Non utilizzare contro sistemi di cui non si è proprietari o per i quali non si dispone di esplicita autorizzazione scritta al test.

Analisi Tecnica


Indice

  • Descrizione
  • Dettagli della Vulnerabilità
  • Struttura del Repository
  • Avvio Rapido
  • Rilevamento
  • Requisiti
  • Mitigazione
  • Ambiente di Test (opzionale)
  • Riferimenti
  • Licenza

Descrizione

CVE-2026-31431 è una vulnerabilità di escalation dei privilegi locale (LPE) nel kernel Linux. Un utente locale non privilegiato può ottenere accesso root combinando l'interfaccia socket AF_ALG con splice() per eseguire una scrittura autenticata direttamente in una pagina della page cache appartenente a un binario setuid.

L'exploit sovrascrive il binario su nella page cache senza modificare l'inode su disco, bypassando i meccanismi di integrità che si basano esclusivamente sui metadati dei file o sui checksum a livello di blocco.


Dettagli della Vulnerabilità

Ambienti Interessati


Struttura del Repository

root@kitploit:~
.
├── exploit.py    # PoC — sovrascrittura della page cache ed escalation dei privilegi
├── detect.bt     # Script BPFtrace per il rilevamento in tempo reale
├── run-vm.sh     # Automazione ambiente di test QEMU (opzionale)
├── PAYLOAD.md    # Analisi della codifica del payload (hex → zlib → ELF → shellcode)
└── LICENSE

Avvio Rapido

Esegui exploit.py come utente locale non privilegiato su qualsiasi sistema vulnerabile — non serve sudo:

root@kitploit:~
python3 exploit.py

Lo script esegue i seguenti passaggi:

  1. Verifica il supporto del kernel per AF_ALG (algif_aead) e individua il binario su.
  2. Seleziona e decomprime il payload appropriato per l'architettura.
  3. Apre il binario su come descrittore di file grezzo e sovrascrive le sue pagine nella page cache tramite AF_ALG + sendfile.
  4. Testa l'escalation dei privilegi. In caso di successo, apre una shell root.

Architetture supportate:


Rilevamento

Monitora i tentativi di sfruttamento in tempo reale con detect.bt. Richiede root:

root@kitploit:~
sudo bpftrace detect.bt
# oppure
doas bpftrace detect.bt

Lo script traccia tre indicatori per PID utilizzando una bitmask in @suspect[pid]:

Un avviso scatta quando tutti e tre i bit sono impostati (@suspect[pid] == 0x7) sullo stesso PID.


Requisiti

exploit.py

  • Python 3.6+
  • Kernel Linux con modulo AF_ALG/algif_aead caricato
  • Account utente locale non privilegiato (root non richiesta)

detect.bt

  • bpftrace ≥ 0.12
  • Privilegi di root (richiesti per il tracing BPF)
root@kitploit:~
# Ubuntu/Debian
sudo apt install bpftrace

# RHEL/CentOS/Fedora
sudo dnf install bpftrace

# Amazon Linux
sudo yum install bpftrace

# SUSE
sudo zypper install bpftrace

# Alpine
sudo apk add bpftrace

Mitigazione

1. Patch (consigliata)

Aggiorna il pacchetto kernel della tua distribuzione a una versione che includa il commit mainline a664bf3d603d, che annulla l'ottimizzazione in-place del 2017 di algif_aead in modo che le pagine della page cache non possano più finire nello scatterlist di destinazione scrivibile. La maggior parte delle principali distribuzioni sta distribuendo la correzione.

2. Disabilitare algif_aead (in attesa di una patch)

La blacklist può essere aggirata con un modprobe algif_aead esplicito. La direttiva install .../bin/false sovrascrive completamente il comando di installazione, facendo fallire ogni tentativo di caricamento:

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

Cosa si rompe — quasi nulla

I sottosistemi nella riga "No" usano direttamente l'API crittografica nel kernel — non passano mai attraverso AF_ALG. Le prestazioni ricadono sulle normali librerie crittografiche in spazio utente, che è ciò che quasi tutto il resto già utilizza.

Per verificare se qualcosa sul tuo sistema usa attivamente AF_ALG prima di disabilitarlo:

root@kitploit:~
lsof | grep AF_ALG
ss -xa | grep alg

3. Blocco tramite seccomp (container, sandbox, CI)

Nega la creazione di socket(AF_ALG, ...) per i carichi di lavoro non attendibili indipendentemente dallo stato della patch. Aggiungi AF_ALG (famiglia 38) alla tua lista di negazione seccomp, oppure usa una policy AppArmor/SELinux che limiti le chiamate socket per i processi non privilegiati.

4. Monitoraggio con detect.bt

Distribuisci lo script di rilevamento incluso su qualsiasi host che non possa essere patchato o bloccato immediatamente. Avviserà su qualsiasi processo che esegue la primitiva di exploit completa in tre passaggi.


Ambiente di Test (opzionale)

run-vm.sh automatizza la creazione di una VM QEMU Ubuntu 24.04 per testare in un ambiente controllato. exploit.py e detect.bt vengono eseguiti direttamente su qualsiasi host vulnerabile — QEMU non è richiesto.

Requisiti dell'Host

DipendenzaNote
qemu-system-x86_64 + KVMVedi i comandi di installazione sotto
wget o curlDownload dell'immagine cloud
cloud-image-utilsGenerazione dell'immagine seed (Docker può sostituire su host non Debian)

Installare QEMU

root@kitploit:~
# Ubuntu/Debian
sudo apt install qemu-system-x86 cloud-image-utils wget

# Fedora/RHEL
sudo dnf install qemu-system-x86 wget

# Arch
sudo pacman -Sy qemu

# Alpine
sudo apk add qemu-system-x86 qemu-ui-gtk wget

Esecuzione

root@kitploit:~
sh run-vm.sh

Menu Interattivo

root@kitploit:~
1. Avvia/Crea VM
2. Connetti via SSH
3. Carica file sulla VM  (exploit.py, detect.bt)
4. Esegui exploit nella VM
5. Esegui detect.bt nella VM
6. Controlla stato VM
7. Ferma VM
8. Pulisci file VM
0. Esci

Credenziali VM

CampoValore
Utenteubuntu
Passwordcve123
Porta SSH2222

Riferimenti

  • Analisi Tecnica — xint.io
  • Analisi della Codifica del Payload — scomposizione hex → zlib → ELF → shellcode
  • crypto/af_alg.c — sorgente kernel
  • mm/splice.c — sorgente kernel

Licenza

Questo progetto è concesso in licenza sotto la GNU General Public License v3.0 o successiva. Vedi LICENSE per il testo completo.

Disclaimer: Questo repository è fornito esclusivamente per ricerca sulla sicurezza autorizzata, test di penetrazione e scopi educativi. Gli autori non accettano alcuna responsabilità per qualsiasi uso improprio o danno causato da questo software.

Scarica lo strumento
CampoValore
ID CVECVE-2026-31431
TipoEscalation dei Privilegi Locale (LPE)
Punteggio CVSS v3.17.8 Alto — AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (fonte: kernel.org)
Sottosistemi kernelcrypto/af_alg.c, mm/splice.c
Vettore di attaccoLocale — richiesto account utente non privilegiato
Causa principalealgif_aead accetta sendfile() su un socket AEAD senza imporre la semantica copy-on-write sulla pagina della page cache mappata prima che splice() completi il trasferimento
DistribuzioneVersione kernelArch
Ubuntu 24.04 LTS6.17.0-1007-awsx86_64
Amazon Linux 20236.18.8-9.213.amzn2023x86_64
RHEL 10.16.12.0-124.45.1.el10_1x86_64
SUSE 166.12.0-160000.9-defaultx86_64
Raspberry Pi OS (Pi 5)6.12.75+rpt-rpi-2712aarch64
ArchitetturaVarianti
x86_64—
aarch64—
riscv64—
ppc64le—
armarmv5l, armv6l, armv7l
x86 32-biti386, i486, i586, i686
MIPS 64-bitmips64, mips64el
LoongArchloong64, loongarch64
s390x—
BitSyscallIndicatore
0x1socket(AF_ALG, SOCK_SEQPACKET)Socket AF_ALG creato
0x2setsockopt(SOL_ALG, ...)Operazione crittografica configurata
0x4sendmsg(MSG_MORE) + splice()Tentativo di sovrascrittura della page cache
Interessato?Sottosistema/Caso d'uso
Nodm-crypt/LUKS, kTLS, IPsec/XFRM, TLS nel kernel
NoBuild predefinite di OpenSSL, GnuTLS, NSS
NoSSH, crittografia del keyring del kernel
ForseOpenSSL con il motore afalg abilitato esplicitamente
ForsePercorsi di offload crittografico embedded o app che legano direttamente socket aead/skcipher/hash