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
copyfail-guard — Rileva e mitiga CVE-2026-31431 (Copy Fail) sui sistemi Linux. | Kitploit
Strumenti/GitHubGitHub/ctzisme/copyfail-guard
Strumenti DifensiviScanner di VulnerabilitàAudit di ConfigurazioneRisposta agli Incidenti
GitHubctzisme/copyfail-guard

copyfail-guard

Rileva e mitiga CVE-2026-31431 (Copy Fail) sui sistemi Linux.

Vedi Repository
23 mesi faNon ancora revisionato

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 →
Sito web
Condividi

copyfail-guard

PyPI Python License pylint

Una CLI Python senza dipendenze che verifica se un host Linux risulta esposto a CVE-2026-31431 ("Copy Fail") senza eseguire un exploit. Può anche applicare una mitigazione temporanea conservativa quando il componente interessato è caricabile come modulo del kernel. Supporta Debian/Ubuntu, RHEL/Rocky/AlmaLinux, Fedora e SUSE.

root@kitploit:~
pip install copyfail-guard
copyfail-guard

Contesto

CVE-2026-31431 è un bug logico nell'interfaccia del kernel algif_aead (socket AF_ALG AEAD) che consente a un utente locale non privilegiato di eseguire una scrittura controllata di 4 byte nella cache delle pagine di qualsiasi file leggibile, portando all'escalation dei privilegi di root. CVSS 7.8, presente dal kernel 4.14, corretto nelle release stabili a partire da aprile 2026. Esiste un exploit pubblico e la vulnerabilità è elencata nel CISA KEV.

Perché non eseguire semplicemente un exploit?

Alcuni controlli di vulnerabilità si riducono a "esegui l'exploit e vedi se funziona". Non è una buona pratica da adottare su host di produzione. copyfail-guard adotta un approccio senza exploit. Non tenta di innescare il bug, modificare binari setuid o dimostrare l'exploitabilità. Invece, ispeziona lo stato dell'host (versione del kernel, stato di caricamento dei moduli, configurazione di modprobe) e segnala se la macchina risulta esposta.

Cosa fa questo strumento

SottocomandoAzione
detectCombina cinque segnali (versione del kernel, /proc/modules, modules.builtin, modules.dep, configurazione modprobe) in uno dei sei verdetti
fixScrive atomicamente una regola modprobe install algif_aead /bin/false e tenta di scaricare algif_aead
resetRimuove la regola modprobe installata da fix (da eseguire dopo l'aggiornamento a un kernel patchato)

fix è volutamente minimale — non chiama nessun gestore di pacchetti. La correzione permanente richiede l'aggiornamento del kernel tramite il normale meccanismo di aggiornamento della tua distribuzione.

Installazione

root@kitploit:~
pip install copyfail-guard

Oppure esegui direttamente da un checkout senza installare:

root@kitploit:~
PYTHONPATH=src python3 -m copyfail_guard detect

Utilizzo

root@kitploit:~
copyfail-guard [--json] [--dry-run] [--quiet] [detect | fix | reset]

detect (predefinito)

root@kitploit:~
$ copyfail-guard
[copyfail-guard] CVE-2026-31431 (Copy Fail) — VULNERABILE
  Distribuzione: Ubuntu 24.04.1 LTS  (famiglia debian)
  Kernel:       6.8.0-50-generic  (ramo 6.12, corretto in 6.12.85)
  Modulo:       algif_aead — caricato come .ko
  Mitigazione:  nessuna

Azioni consigliate:
  1. Applica subito la mitigazione:
       sudo copyfail-guard fix
  2. Aggiorna il kernel per una correzione permanente:
       Aggiorna il kernel su questo sistema a 6.12.85 o successivo (qualunque
       versione la tua distribuzione fornisca una volta integrata la correzione
       per CVE-2026-31431), quindi riavvia.

fix

Anteprima sempre con --dry-run prima di applicare:

root@kitploit:~
$ sudo copyfail-guard --dry-run fix
[copyfail-guard] fix (dry-run) — OK
  [ ok ] Controlli preliminari (Linux, host, root)
  [skip] Scriverebbe la blacklist modprobe  [/etc/modprobe.d/cve-2026-31431-copyfail-guard.conf]
  [skip] Tenterebbe di scaricare algif_aead (non attualmente caricato)  [algif_aead]
  [skip] Aggiungerebbe il record di audit  [/var/log/copyfail-guard.log]

$ sudo copyfail-guard fix
[copyfail-guard] fix — OK
  [ ok ] Controlli preliminari (Linux, host, root)
  [ ok ] Scritta blacklist modprobe  [/etc/modprobe.d/cve-2026-31431-copyfail-guard.conf]
  [ ok ] Scaricato algif_aead  [algif_aead]
  [ ok ] Aggiunto record di audit  [/var/log/copyfail-guard.log]

Prossimo passo per una correzione permanente:
  Aggiorna il kernel a una versione con la patch per CVE-2026-31431 usando il
  normale meccanismo di aggiornamento della tua distribuzione, quindi riavvia.

Se il modulo è attualmente in uso, il passaggio di scaricamento potrebbe fallire. In tal caso la regola modprobe persistente può comunque essere installata con successo, e copyfail-guard segnalerà il fallimento dello scaricamento come record di azione di tipo avviso piuttosto che fingere che il modulo sia stato rimosso.

Output JSON

--json emette un documento strutturato su stdout, adatto per pipeline jq, Ansible o SOAR:

root@kitploit:~
$ copyfail-guard --json | jq .verdict
"vulnerable"

$ copyfail-guard --json | jq '{verdict, kernel: .kernel.patched_threshold}'
{
  "verdict": "vulnerable",
  "kernel": "6.12.85"
}

Codici di uscita

CodiceSignificato
0Sicuro — il verdetto è patched, mitigated o not_applicable; oppure il passaggio di correzione persistente è riuscito
1Vulnerabile — il verdetto è vulnerable o unmitigable_builtin
2Errore — lo stato non può essere determinato, precondizione rifiutata, oppure il passaggio di correzione persistente è fallito

Verdetti

VerdettoDescrizione
patchedIl kernel in esecuzione è alla versione corretta o successiva
mitigatedIl kernel è vulnerabile ma algif_aead è bloccato dalla configurazione modprobe
not_applicableIl kernel è vulnerabile ma algif_aead non è presente su questo sistema
vulnerableIl kernel è vulnerabile, il modulo è caricabile, nessuna mitigazione in atto
unmitigable_builtinalgif_aead è compilato direttamente nell'immagine del kernel — la mitigazione modprobe non ha effetto; è richiesto l'aggiornamento del kernel
unknownLa versione del kernel non può essere analizzata o è al di fuori dell'intervallo valutato

Rimozione della mitigazione

Dopo l'aggiornamento a un kernel patchato, usa il sottocomando reset per rimuovere la regola modprobe installata da fix:

root@kitploit:~
$ sudo copyfail-guard --dry-run reset
[copyfail-guard] reset (dry-run) — OK
  [skip] Rimuoverebbe /etc/modprobe.d/cve-2026-31431-copyfail-guard.conf

$ sudo copyfail-guard reset
[copyfail-guard] reset — OK
  [ ok ] Rimosso /etc/modprobe.d/cve-2026-31431-copyfail-guard.conf

Riavvia per consentire a algif_aead di caricarsi di nuovo se necessario.

reset è idempotente — se il file è già assente esce con 0 e un messaggio "niente da fare". Quindi riavvia.

Note

Contenitori. fix rifiuta di essere eseguito all'interno di un contenitore perché /proc/modules riflette il kernel dell'host ma il contenitore non ha autorità per caricare o scaricare moduli. Esegui copyfail-guard direttamente sull'host.

algif_aead integrato. Alcuni kernel compilano algif_aead direttamente nell'immagine (CONFIG_CRYPTO_USER_API_AEAD=y). La mitigazione modprobe non ha effetto in questa configurazione; l'unica correzione è l'aggiornamento del kernel. detect segnala unmitigable_builtin in questo caso. Eseguire fix installerà comunque la regola modprobe (che impedisce il caricamento di qualsiasi copia caricabile coesistente) ma l'istanza integrata non è influenzata — l'aggiornamento del kernel e il riavvio sono l'unico vero rimedio.

blacklist vs install … /bin/false. Entrambe le direttive bloccano il normale auto-caricamento, ma install algif_aead /bin/false è più forte perché blocca anche le normali invocazioni esplicite di modprobe algif_aead. Un amministratore con privilegi sufficienti può comunque bypassare la policy modprobe, ad esempio usando strumenti di caricamento moduli di basso livello o flag speciali di modprobe. copyfail-guard installa sempre la forma più forte. Se il tuo sistema ha già una direttiva blacklist semplice, lo strumento segnala mitigated ma emette una nota che consiglia l'aggiornamento.

SELinux/AppArmor. Le scritture in /etc/modprobe.d/ su RHEL normalmente ereditano system_u:object_r:modules_conf_t:s0 dalla directory padre, quindi di solito non è necessario alcun relabel manuale per il file scritto da copyfail-guard.

initramfs. algif_aead normalmente non è incluso nell'immagine di avvio sulle principali distribuzioni, quindi copyfail-guard non esegue update-initramfs -u o dracut -f dopo l'installazione della regola modprobe. Se la tua distribuzione o build locale include algif_aead in initramfs, segui le linee guida su kernel/moduli della tua distribuzione.

Licenza

Apache 2.0 — vedi LICENSE.

Scarica lo strumento