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
CopyFail-Exploits-CVE-2026-31431 — # Implementazioni educative multi-linguaggio di exploit per CVE-2026-31431, un'escalation locale dei privilegi del kernel Linux tramite il modulo algif_aead, con un rilevatore sicuro e guida all'uso per CTF. | Kitploit
Strumenti/GitHubGitHub/shotafry/copyfail-exploits-cve-2026-31431
Escalation di PrivilegiFramework di ExploitExploitCTFApprendimento e FormazioneBinary ExploitationLab e Pratica
GitHubshotafry/copyfail-exploits-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

CopyFail-Exploits-CVE-2026-31431

# Implementazioni educative multi-linguaggio di exploit per CVE-2026-31431, un'escalation locale dei privilegi del kernel Linux tramite il modulo algif_aead, con un rilevatore sicuro e guida all'uso per CTF.

Vedi Repository
7225 mesi faNon ancora revisionato

CVE-2026-31431 — Copy Fail

Repo educativo con implementaciones en múltiples lenguajes del exploit Copy Fail.
Creado y mantenido por @shotafry — perché leggere il CVE non basta. Bisogna riprodurlo.


📖 Read this in English


Índice

  • ¿Qué es Copy Fail?
  • ¿Quién lo descubrió?
  • Gravedad y CVSS
  • ¿Cómo funciona?
  • Requisitos
  • Implementaciones disponibles
  • Uso por lenguaje
  • Verificación del sistema
  • ¿Qué pasa exactamente al ejecutarlo?
  • Uso en CTFs y entornos de prueba
  • Ofuscación — variantes silenciosas
  • Mitigación y parche
  • Estructura del repo
  • Aviso legal

¿Qué es Copy Fail?

Copy Fail è una vulnerabilità di escalation dei privilegi locale (LPE) nel kernel Linux, catalogata come CVE-2026-31431. Colpisce il sottosistema crittografico del kernel, in particolare il modulo algif_aead che gestisce le operazioni di cifratura autenticata (AEAD) tramite socket AF_ALG.

Il difetto è stato introdotto nel 2017 in un'ottimizzazione del modulo authencesn ed è rimasto non rilevato per quasi 9 anni, presente in praticamente tutte le distribuzioni Linux moderne.

Ciò che rende speciale Copy Fail rispetto ad altri LPE storici:

CaratteristicaCopy FailLPE tipico
Necessita race condition❌ No✅ Sì
Necessita offset specifico del kernel❌ No✅ Sì
Funziona su tutte le distro✅ Sì❌ Normalmente no
Affidabilità100% deterministicoVariabile
Modifica il disco❌ No (solo RAM)Dipende

¿Quién lo descubrió?

La vulnerabilità è stata scoperta da Taeyang Lee del team di ricerca di Theori. L'intera catena di exploit è stata sviluppata dal team Xint Code Research, che ha documentato il processo usando analisi assistita da IA sul sottosistema crypto/ del kernel Linux.

La divulgazione pubblica include PoC funzionante, analisi tecnica completa e documentazione su copy.fail.


Gravedad y CVSS

CVE:       CVE-2026-31431
CVSS:      7.8 — ALTA
Vector:    Local
Impacto:   Escalada de privilegios completa (root)
Distros:   Todas las distribuciones Linux con kernel >= 2017 sin parchear

Il CVSS è 7.8 e non arriva a critico (9+) solo perché richiede accesso locale preventivo — l'attaccante deve già avere una sessione sul sistema. In ambienti cloud e con container Docker, questo requisito è considerevolmente più facile da soddisfare di quanto sembri.


¿Cómo funciona?

La page cache del kernel

Il kernel Linux conserva in RAM i file letti di recente. Questo si chiama page cache. Quando un processo legge /etc/passwd, il kernel non va al disco — serve la copia in RAM. Questo è più veloce, ma crea una superficie d'attacco: se puoi modificare quella copia in RAM senza toccare il disco, il sistema vedrà dati falsi.

Il bug in algif_aead

Il modulo algif_aead consente di eseguire operazioni AEAD dallo spazio utente tramite socket AF_ALG. Il bug sta nell'ottimizzazione introdotta nel 2017: quando si usa splice() per passare pagine di un file al socket, quelle pagine della page cache finiscono nella lista di dispersione destinazione (scrivibile) dell'operazione crittografica.

Risultato: qualsiasi utente senza privilegi può scrivere 4 byte controllati in qualsiasi file che possa leggere, senza toccare il disco.

Il flusso di sfruttamento

Usuario sin privilegios
        │
        ▼
  Abre socket AF_ALG (authencesn)
        │
        ▼
  sendmsg() — parámetros AEAD con nuestros 4 bytes en seqno_lo
        │
        ▼
  splice() — fichero → pipe → socket op
  [BUG] La page cache del fichero queda en el scatterlist destino
        │
        ▼
  recv() dispara la operación AEAD
  La auth falla (EBADMSG) pero el scratch-write ya ocurrió
        │
        ▼
  /etc/passwd (page cache) ahora dice: usuario → UID 0
        │
        ▼
  su <usuario> → PAM valida contraseña real → setuid(0) → ROOT

Analogía sencilla

Immagina che il kernel abbia un libro dei registri del castello (/etc/passwd). Copy Fail è come scoprire che se apri l'officina di magia del castello in un ordine molto specifico, il libro dei registri finisce accidentalmente sulla tua scrivania — e puoi cambiare il tuo grado da "soldato semplice" a "re" con una penna. L'archivista (PAM) verifica la tua password ma non controlla il libro originale, solo la copia che hai davanti. Sei re.

¿Qué pasa exactamente al ejecutarlo?

passwd cambiando en tiempo real

Implementaciones disponibles


Requisitos

Del sistema objetivo

  • Kernel Linux >= ~2017 senza la patch di CVE-2026-31431
  • Modulo algif_aead disponibile e caricabile
  • UID a 4 cifre (1000–9999) — standard su tutte le distro

Verificación rápida

Questo si può davvero saltare e provare direttamente uno degli exploit, ma è anche valido se non vogliamo rischiare di caricarli o crearli e vogliamo solo vedere se funziona, ma gli exploit hanno la loro funzione per verificare se il sistema in questione è vulnerabile.

# Ver versión del kernel
uname -a

# Comprobar si el algoritmo está disponible
grep -i authencesn /proc/crypto

# Comprobar si el módulo está cargado
lsmod | grep alg

Se grep -i authencesn /proc/crypto restituisce authencesn(hmac(sha256),cbc(aes)), il sistema è vulnerabile.

Por lenguaje

LenguajeRequisito en el objetivoCompilación previa
CNinguno (binario estático)gcc en máquina de compilación
PythonPython 3.10+No
RustNinguno (binario estático)rustc en máquina de compilación
GoNinguno (binario estático)go en máquina de compilación
RubyRuby + gem fiddle (incluido por defecto)No
PerlPerl 5 (incluido en prácticamente todo Linux)No

Implementaciones disponibles

Questo repository contiene l'exploit implementato in 6 linguaggi, tutti funzionalmente equivalenti, con commenti didattici in spagnolo.

copy_fail_exploit.c      → C         — binario estático, cero dependencias
copy_fail_exploit.py     → Python    — más legible, ideal para aprender
copy_fail_exploit.rs     → Rust      — la ironía: lenguaje "seguro" explota kernel
copy_fail_exploit.go     → Go        — binario estático, muy portable
copy_fail_exploit.rb     → Ruby      — omnipresente en servidores Rails
copy_fail_exploit.pl     → Perl      — el más silencioso, está en todo Linux
test_cve_2026_31431.py   → Detector  — verifica vulnerabilidad sin explotar nada

Uso por lenguaje

Detector (primero siempre esto)

python3 test_cve_2026_31431.py
  • Exit 0 → NO vulnerable
  • Exit 2 → VULNERABLE
  • Exit 1 → Error en la prueba

C

# Compilar
gcc copy_fail_exploit.c -o copy_fail_c

# Dry-run (limpia al salir, no deja rastro)
./copy_fail_c
Scarica lo strumento