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-CopyFail — Proof-of-concept exploit per CVE-2026-31431 (Copy Fail), una LPE del kernel Linux tramite corruzione della page-cache in algif_aead, con guida a rilevamento, laboratorio e mitigazione. | Kitploit
Strumenti/GitHubGitHub/0xfuffm3/cve-2026-31431-copyfail
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitPenetration TestingApprendimento e FormazioneEscape dal ContainerBinary ExploitationLab e Pratica

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
GitHub
0xfuffm3/cve-2026-31431-copyfail

CVE-2026-31431-CopyFail

Proof-of-concept exploit per CVE-2026-31431 (Copy Fail), una LPE del kernel Linux tramite corruzione della page-cache in algif_aead, con guida a rilevamento, laboratorio e mitigazione.

Vedi Repository
83 mesi faNon ancora revisionato
root@kitploit:~
                     ██████╗ ██████╗ ██████╗ ██╗   ██╗    ███████╗ █████╗ ██╗██╗
                    ██╔════╝██╔═══██╗██╔══██╗╚██╗ ██╔╝    ██╔════╝██╔══██╗██║██║
                    ██║     ██║   ██║██████╔╝ ╚████╔╝     █████╗  ███████║██║██║
                    ██║     ██║   ██║██╔═══╝   ╚██╔╝      ██╔══╝  ██╔══██║██║██║
                         ╚██████╗╚██████╔╝██║        ██║       ██║     ██║  ██║██║███████╗
                          ╚═════╝ ╚═════╝ ╚═╝        ╚═╝       ╚═╝     ╚═╝  ╚═╝╚═╝╚══════╝

CVE-2026-31431 — "Copy Fail"

Scalata di privilegi locale del kernel Linux tramite corruzione della cache di pagine di algif_aead


CVE CVSS Kernel License Status


⚠️ SOLO PER USO AUTORIZZATO — Questo repository è strettamente per penetration tester, ricercatori di sicurezza e difensori che operano sotto autorizzazione legale. L'abuso costituisce reato penale.


📖 Indice


🔍 Cos'è Copy Fail?

Copy Fail è una vulnerabilità di scalata di privilegi locale (LPE) divulgata il 29 aprile 2026, che colpisce praticamente tutte le principali distribuzioni Linux con kernel dalla 2017 in poi.

root@kitploit:~
Utente con privilegi ridotti  ──►  AF_ALG + splice()  ──►  Scrittura di 4 byte nella cache di pagine  ──►  ROOT

Fatti chiave in sintesi

Perché è pericoloso

  • 🕵️ Furtivo — La modifica risiede solo nella cache di pagine; il file su disco non viene mai alterato. Le analisi forensi su disco standard non lo rileveranno.
  • ⚡ Affidabile — Difetto logico deterministico, non una race condition. Lo sfruttamento è consistente tra ambienti diversi.
  • 🌐 Universale — Colpisce Ubuntu, RHEL, Amazon Linux, SUSE, Debian — ogni distribuzione principale dal 2017.
  • ☸️ Impatto su Cloud/K8s — Può facilitare la fuga da container in carichi di lavoro Kubernetes e runner CI/CD.
  • 🤖 Scoperto dall'IA — Trovato dal sistema AI di Xint Code con circa 1 ora di scansione e un singolo prompt operatore.

🔬 Approfondimento tecnico

Causa principale

La vulnerabilità deriva da un'ottimizzazione in-place difettosa introdotta nel 2017 (commit 72548b093ee3) all'interno del modulo algif_aead dell'API crittografica userspace del kernel Linux (AF_ALG).

root@kitploit:~
AF_ALG (API crittografica userspace)
└── modulo algif_aead
    └── template authencesn  ◄── VULNERABILE
        └── ottimizzazione in-place (2017)
            └── req->src == req->dst  ◄── pagine da splice() concatenate in scatterlist dst scrivibile

Flusso di attacco

root@kitploit:~
Passo 1: Aprire un socket AF_ALG AEAD
        socket(AF_ALG, SOCK_SEQPACKET, 0)

Passo 2: Inviare pagine splice() che referenziano il file target
        (pagine cache di pagine di un binario con privilegi, es. /usr/bin/sudo)

Passo 3: Attivare la scrittura scratch su authencesn
        authencesn usa il buffer dst come area scratch →
        scrive 4 byte controllati OLTRE la regione di output legittima

Passo 4: La voce nella cache di pagine per il file target è ora corrotta
        (file su disco intatto — solo la copia in memoria è modificata)

Passo 5: Eseguire il binario modificato → ROOT

Perché la cache di pagine?

La cache di pagine del kernel Linux mantiene copie in memoria dei file. Quando un file viene letto, le sue pagine vengono memorizzate nella cache. La syscall splice() può referenziare direttamente queste pagine in cache. Alimentando le pagine della cache di pagine nello scatterlist AEAD di AF_ALG, la scrittura scratch di authencesn finisce all'interno di quelle pagine in cache, modificando di fatto la copia in memoria di qualsiasi file leggibile — inclusi binari con privilegi come sudo, pkexec o passwd.

La correzione

La correzione upstream ripristina la difettosa ottimizzazione del 2017:

root@kitploit:~
# Corretto nel commit: a664bf3d603d
git show a664bf3d603d

🖥️ Sistemi affetti

Versioni del kernel Linux

Matrice distribuzioni


📁 Struttura del repository

root@kitploit:~
CVE-2026-31431-CopyFail/
│
├── 📄 README.md                          ← Sei qui
├── 📄 LICENSE                            ← Licenza per ricerca/educazione
├── 📄 DISCLAIMER.md                      ← Politica di uso legale ed etico
├── 📄 CHANGELOG.md                       ← Cronologia versioni
│
├── 📂 docs/
│   ├── vulnerability-analysis.md         ← Approfondimento: causa e meccanismi
│   ├── exploitation-walkthrough.md       ← Metodologia passo-passo
│   ├── affected-kernels.md               ← Matrice completa versioni kernel/distribuzioni
│   ├── detection.md                      ← Copertura Defender, Tenable, Wazuh
│   └── references.md                     ← Tutti i CVE, blog, advisory
│
├── 📂 exploit/
│   ├── README.md                         ← Utilizzo, prerequisiti, distribuzioni testate
│   ├── copyfail.py                       ← PoC di riferimento (educativo)
│   ├── trigger.c                         ← Trigger C per AF_ALG + splice()
│   └── variants/
│       ├── ubuntu.py                     ← Variante specifica per Ubuntu
│       ├── rhel.py                       ← Variante per RHEL/CentOS
│       └── amazon_linux.py              ← Variante per Amazon Linux
│
├── 📂 detection/
│   ├── yara/
│   │   └── copyfail.yar                  ← Regola YARA per artefatti exploit
│   ├── sigma/
│   │   └── copyfail_lpe.yml              ← Regola Sigma per SIEM/SOC
│   └── scripts/
│       ├── check_vulnerable.sh           ← Verifica rapida vulnerabilità kernel
│       └── detect_algif_aead.sh         ← Controlla se il modulo è caricato/attivo
│
├── 📂 mitigation/
│   ├── README.md                         ← Panoramica mitigazione
│   ├── disable_algif_aead.sh             ← Disabilita il modulo kernel affetto
│   ├── patch-notes.md                    ← Dettagli patch upstream
│   └── kubernetes-hardening.md          ← Hardening per K8s / container
│
├── 📂 lab/
│   ├── Vagrantfile                       ← Macchina virtuale vulnerabile riproducibile
│   ├── setup.sh                          ← Script di bootstrap del laboratorio
│   └── docker/
│       └── Dockerfile                    ← Container Ubuntu vulnerabile
│
├── 📂 reports/
│   ├── pentest-report-template.md        ← Template report pronto per il cliente
│   └── sample-finding.md                ← Esempio di segnalazione di vulnerabilità
│
└── 📂 assets/
    ├── demo.gif                          ← (Opzionale) demo terminale
    └── diagrams/
        └── page-cache-write.png         ← Diagramma del flusso di attacco

🧪 Configurazione del laboratorio

Eseguire sempre i test in un ambiente isolato e autorizzato. Non eseguire mai exploit su sistemi di produzione.

Opzione A — VM Vagrant (consigliata)

root@kitploit:~
# Clona il repository
git clone https://github.com/0xFuffM3/CVE-2026-31431-CopyFail.git
cd CVE-2026-31431-CopyFail

# Avvia la VM vulnerabile del laboratorio
cd lab/
vagrant up

# Connettiti via SSH al laboratorio
vagrant ssh

# Verifica la versione del kernel (dovrebbe essere vulnerabile)
uname -r

Opzione B — Container Docker

root@kitploit:~
cd lab/docker/

# Crea l'immagine del container vulnerabile
docker build -t copyfail-lab .

# Esegui con i privilegi necessari per interazione con il kernel
docker run --rm -it --privileged copyfail-lab /bin/bash

Verifica se il tuo sistema è vulnerabile

root@kitploit:~
# Esegui lo script di controllo rapido
chmod +x detection/scripts/check_vulnerable.sh
./detection/scripts/check_vulnerable.sh

Output atteso su sistema vulnerabile:

root@kitploit:~
[!] Versione kernel: 5.15.0-91-generic
[!] Modulo algif_aead: CARICATO
[✗] Il sistema appare VULNERABILE a CVE-2026-31431 (Copy Fail)
[*] Azione consigliata: Applicare l'aggiornamento del kernel o disabilitare algif_aead

Output atteso su sistema patchato:

root@kitploit:~
[✓] Versione kernel: 6.1.132
[✓] Il sistema appare PATCHATO contro CVE-2026-31431 (Copy Fail)

💥 Utilizzo dell'exploit

Richiede: Accesso locale come utente senza privilegi su un sistema vulnerabile.

Prerequisiti

root@kitploit:~
# Python 3.6+
python3 --version

# Moduli kernel richiesti presenti
lsmod | grep algif_aead

# Verifica che il binario target sia leggibile
ls -la /usr/bin/sudo

Esecuzione del PoC

root@kitploit:~
cd exploit/

# Controlla il livello di privilegio corrente
id
# uid=1000(utente) gid=1000(utente) gruppi=1000(utente)

# Esegui il PoC di Copy Fail
python3 copyfail.py

# Verifica la scalata di privilegi
id
# uid=0(root) gid=0(root) gruppi=0(root)

Flusso di lavoro per il pentest

root@kitploit:~
1. Enumera la versione del kernel
   └─► uname -r / cat /proc/version

2. Verifica se algif_aead è caricato
   └─► lsmod | grep algif_aead

3. Conferma il punto d'appoggio con privilegi ridotti
   └─► id / whoami

4. Esegui il PoC di Copy Fail
   └─► python3 exploit/copyfail.py

5. Verifica l'accesso root
   └─► id && cat /etc/shadow

6. Documenta le prove
   └─► Screenshot + registra versione kernel, distribuzione, hash exploit

7. Applica la mitigazione (dopo il test)
   └─► sudo bash mitigation/disable_algif_aead.sh

8. Includi nel report di pentest
   └─► Usa reports/pentest-report-template.md

🔎 Rilevamento

Regola YARA

root@kitploit:~
// detection/yara/copyfail.yar
rule CopyFail_CVE_2026_31431 {
    meta:
        description = "Rileva artefatti dell'exploit Copy Fail (CVE-2026-31431)"
        author      = "0xFuffM3"
        date        = "2026-04-30"
        reference   = "https://copy.fail"
    strings:
        $py1 = "algif_aead" ascii
        $py2 = "AF_ALG" ascii
        $py3 = "splice" ascii
        $py4 = "page_cache" ascii
        $py5 = "authencesn" ascii
    condition:
        3 of them
}

Esegui la scansione YARA:

root@kitploit:~
yara detection/yara/copyfail.yar /tmp/ -r

Regola Sigma (SIEM)

root@kitploit:~
# detection/sigma/copyfail_lpe.yml
title: Esecuzione exploit LPE Copy Fail (CVE-2026-31431)
status: stable
logsource:
    category: process_creation
    product: linux
detection:
    selection:
        CommandLine|contains:
            - 'AF_ALG'
            - 'algif_aead'
            - 'authencesn'
    condition: selection
falsepositives:
    - Test legittimo dell'API crittografica
level: high

Script di rilevamento rapido

root@kitploit:~
chmod +x detection/scripts/detect_algif_aead.sh
./detection/scripts/detect_algif_aead.sh

Copertura degli strumenti di sicurezza


🛡️ Mitigazione

Opzione 1 — Applicare la patch del kernel (consigliata)

root@kitploit:~
# Ubuntu / Debian
sudo apt-get update && sudo apt-get upgrade linux-image-generic

# RHEL / CentOS
sudo yum update kernel

# Amazon Linux
sudo yum update kernel

# Dopo l'aggiornamento, riavviare
sudo reboot

Opzione 2 — Disabilitare il modulo algif_aead (temporanea)

root@kitploit:~
# Esegui lo script di mitigazione
chmod +x mitigation/disable_algif_aead.sh
sudo bash mitigation/disable_algif_aead.sh

Cosa fa lo script:

root@kitploit:~
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead 2>/dev/null || echo "[*] Modulo non attualmente caricato"
echo "[✓] algif_aead disabilitato. Riavviare per confermare la persistenza."

Opzione 3 — Hardening Kubernetes

Vedi mitigation/kubernetes-hardening.md per:

  • Limitare la creazione di socket AF_ALG nelle policy di sicurezza dei pod
  • Profilo Seccomp per bloccare la syscall socket(AF_ALG, ...)
  • Applicazione prioritaria delle patch ai nodi Kubernetes e ai runner CI/CD

📝 Report di pentest

Un template di report pronto per il cliente è disponibile in reports/pentest-report-template.md.

Riepilogo di una segnalazione esempio

root@kitploit:~
Segnalazione: Scalata di privilegi locale tramite Copy Fail (CVE-2026-31431)
Gravità:    ALTA (CVSS 7.8)
Host:       10.10.10.55 (ubuntu-prod-01)
Kernel:     5.15.0-91-generic

Prove:
  - Shell senza privilegi (uid=1000) scalata a root (uid=0)
  - Modulo kernel algif_aead confermato caricato
  - Nessun artefatto su disco — solo cache di pagine

Raccomandazione:
  1. Applicare immediatamente la patch del kernel del fornitore
  2. In via temporanea: disabilitare il modulo algif_aead
  3. Verificare nodi Kubernetes e runner CI/CD

⚖️ Legale ed etica

Leggere prima di utilizzare qualsiasi cosa in questo repository.

Questo repository è pubblicato esclusivamente per ricerca di sicurezza legittima, penetration test autorizzati e scopi di difesa della sicurezza.

  • ✅ Consentito: Test su sistemi di tua proprietà o per i quali hai esplicita autorizzazione scritta
  • ✅ Consentito: Ricerca di sicurezza in ambienti di laboratorio isolati
  • ✅ Consentito: Uso difensivo — rilevamento, patch, hardening
  • ❌ Vietato: Test su sistemi senza autorizzazione scritta
  • ❌ Vietato: Distribuzione di exploit contro sistemi di produzione
  • ❌ Vietato: Qualsiasi uso che violi leggi locali, nazionali o internazionali

L'uso non autorizzato di questo materiale può violare il Computer Fraud and Abuse Act (CFAA), la Direttiva UE 2013/40/UE, l'Indian IT Act 2000 e leggi equivalenti nella tua giurisdizione.

Gli autori non si assumono alcuna responsabilità per uso improprio. Vedi DISCLAIMER.md per l'informativa legale completa.


📚 Riferimenti


🤝 Contributi

I ricercatori di sicurezza sono invitati a contribuire:

  1. Forka il repository
  2. Crea un branch per la funzionalità: git checkout -b feat/tuo-contributo
  3. Committa le modifiche: git commit -m "Aggiungi: regola di rilevamento per X"
  4. Fai push e apri una Pull Request

Si prega di seguire le norme di divulgazione responsabile. Non includere codice exploit armato e pronto per la produzione che colpisca sistemi già patchati.


Realizzato per la comunità della sicurezza — usare con responsabilità.

Follow

Scarica lo strumento
#SezioneDescrizione
1Cos'è Copy Fail?Riepilogo della vulnerabilità
2Approfondimento tecnicoAnalisi della causa principale
3Sistemi affettiMatrice distribuzioni e kernel
4Struttura del repositoryLayout dei file
5Configurazione del laboratorioRiproduci in sicurezza
6Utilizzo dell'exploitFlusso di lavoro per il pentest
7RilevamentoYARA, Sigma, script
8MitigazionePatch e hardening
9Report di pentestTemplate per report
10Legale ed eticaDisclaimer
11RiferimentiCVE, advisory, blog
ProprietàDettaglio
CVE IDCVE-2026-31431
SoprannomeCopy Fail
CVSS v3.17.8 (ALTO)
Vettore di attaccoLocale
Privilegi richiestiBassi (qualsiasi utente senza privilegi)
Interazione utenteNessuna
ScopritoreXint Code (Theori)
Divulgato29 aprile 2026
Dimensione exploit732 byte (PoC Python)
Stato patch✅ Disponibile — revert commit a664bf3d603d
Ramo kernelAffetto?Versione corretta
4.9.x (LTS)✅ Sì4.9.340+
5.4.x (LTS)✅ Sì5.4.295+
5.10.x (LTS)✅ Sì5.10.239+
5.15.x (LTS)✅ Sì5.15.185+
6.1.x (LTS)✅ Sì6.1.132+
6.6.x (LTS)✅ Sì6.6.83+
6.12.x (LTS)✅ Sì6.12.19+
< 4.9 (pre-2017)❌ NoN/D — ottimizzazione non presente
DistribuzioneVersioni affettePatchato?Avviso
Ubuntu< 26.04 (tutte le release)✅ PatchatoUSN
Ubuntu 26.04 (Resolute)❌ Non affetto——
RHEL / CentOS7, 8, 9✅ PatchatoRHSA-2026
Amazon Linux2, 2023✅ PatchatoALAS
SUSE / openSUSETutti affetti✅ PatchatoSUSE-SU
DebianBullseye, Bookworm✅ PatchatoDSA
CloudLinux8, 9✅ PatchatoAdvisory
StrumentoSupporto rilevamento
Microsoft Defender (MDVM)✅ Sì
Tenable Nessus✅ Sì
Qualys✅ Sì
Wazuh✅ Tramite regola Sigma personalizzata
Palo Alto Cortex XDR✅ Sì
CrowdStrike Falcon✅ Sì
FonteLink
Divulgazione originale (Xint/Theori)copy.fail
Analisi tecnica Xint Codexint.io/blog/copy-fail
NVD Entrynvd.nist.gov
Blog sulla sicurezza Microsoftmicrosoft.com/security/blog
Advisory Ubuntuubuntu.com/blog
Advisory CERT-EUcert.europa.eu
FAQ Tenabletenable.com/blog
Palo Alto Unit 42unit42.paloaltonetworks.com
Advisory CloudLinuxblog.cloudlinux.com
Analisi Bugcrowdbugcrowd.com/blog
Patch del kernel Linuxkernel.org — commit a664bf3d603d