Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 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
155 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à

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

Ambienti Interessati

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

Struttura del Repository

.
├── 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:

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:

ArchitetturaVarianti
x86_64—
aarch64—
riscv64—
ppc64le—
armarmv5l, armv6l, armv7l
x86 32-biti386, i486, i586, i686
MIPS 64-bitmips64, mips64el
LoongArchloong64, loongarch64
s390x—

Rilevamento

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

sudo bpftrace detect.bt
# oppure
doas bpftrace detect.bt

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

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

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)
# 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:

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

Scarica lo strumento