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
Strumenti/GitHubGitHub/effiesec/copy-fail-cve-2026-31431
Scanner di VulnerabilitàAnalisi delle VulnerabilitàAudit di Configurazione
GitHubeffiesec/copy-fail-cve-2026-31431

copy-fail-cve-2026-31431

Passive scanner per host Linux che classifica l'esposizione a CVE-2026-31431 tramite versione del kernel, changelog della distribuzione, stato dei moduli e raggiungibilità di AF_ALG, con output JSON per l'integrazione con SIEM.

Vedi Repository
94 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 →
Condividi

CVE Checker per Copy Fail (CVE-2026-31431)

Autori/Contributori: Patrick Doyle (Autore/Mantainer), Effie Renard (Co-Autore), Kimberly-Lee Banks (Co-Autore), Chris F. (Supporto/Revisione del codice)

Dichiarazione sull'IA: Claude Code è stato utilizzato per scrivere i file di test, scrivere i dati di test e per una revisione della sicurezza del codice. Tutte le modifiche sono state verificate manualmente da uno dei contributori.

Descrizione

Un singolo binario Go collegato staticamente che classifica l'esposizione di un host Linux a CVE-2026-31431.

Lo strumento è passivo. Non sfrutta il bug. La sonda del meccanismo (vedi dichiarazione di sicurezza sotto) emette esattamente due syscall e non tocca mai il percorso del codice vulnerabile.


Cosa Controlla

SegnaleFonteFlag
Versione del kernel rispetto alla correzione a monteuname(2)--kernel-version
Il changelog della distribuzione menziona la CVEapt/rpm/apk o changelog.Debian.gz su disco--changelog
Stato del modulo algif_aead/proc/modules, modprobe.d, /lib/modules--module
Superficie vulnerabile raggiungibilesocket(AF_ALG) + bind(authencesn(...))--mechanism
Compilato in vmlinux/boot/config-$(uname -r) o /proc/config.gz(parte di --module)

Se non vengono forniti flag di controllo, vengono eseguiti tutti e quattro.


Modalità di Output

ModalitàAttivazioneCaso d'uso
Stile grafico (Predefinita)stdout TTY, nessun override --format, nessuna env NO_COLOREsecuzioni in shell interattive
Testo semplicestdout non-TTY, OPPURE --format=text, OPPURE NO_COLOR=1, OPPURE --no-colorScript di shell, Pipe
JSON--format=jsonIngestione Syslog/SIEM, Script di shell
Silenziosa--quietSolo codice di uscita (automazione/script)

Forza la modalità grafica quando si usa una pipe: cvecheck --pretty | tee report.txt. Forza la modalità testo in un TTY: cvecheck --no-color o NO_COLOR=1 cvecheck.


Dichiarazione di Sicurezza (Sonda del Meccanismo)

La sonda emette esattamente due syscall socket(AF_ALG, SOCK_SEQPACKET, 0) e bind(fd, &SockaddrALG{Type:"aead", Name:"authencesn(hmac(sha256), cbc(aes))"}). Segue poi close(fd). Non esegue nessun setsockopt per una chiave, nessun accept, nessun sendmsg, nessuna splice e nessuna creazione di pipe. Il percorso del codice vulnerabile richiede sendmsg di dati crittografici combinato con una splice da un file descriptor supportato da page-cache; nessuna di queste operazioni avviene, quindi il bug non può essere innescato.

Una sonda riuscita significa che la superficie è raggiungibile. Se il kernel contiene ancora il bug viene deciso dai segnali di versione del kernel + changelog.

Effetto collaterale: un bind riuscito carica automaticamente algif_aead tramite l'autoloader dei moduli del kernel. Il controllo del modulo viene eseguito prima della sonda del meccanismo, quindi il report sullo stato di caricamento è pre-sonda. Per sopprimere completamente l'autoload, inserire prima algif_aead nella blacklist.


Codici di Uscita

CodiceSignificato
0PATCHED / NOT_VULNERABLE / MITIGATED / LIKELY_NOT_EXPLOITABLE
2VULNERABLE o MECHANISM_REACHABLE (scansione parziale, versione del kernel non controllata)
3INCONCLUSIVE (segnali insufficienti)

Copertura delle Distribuzioni

DistribuzioneRilevamentoPacchetto kernelNote
Ubuntu / Debian / Mint / Pop!_OSaptlinux-image-$(uname -r)La lettura del changelog da disco evita la fragilità di rete di apt changelog sui kernel firmati
RHEL / CentOS / Rocky / Alma / Fedora / Amazon LinuxrpmkernelInclude algif_aead compilato (CONFIG_..._AEAD=y); la mitigazione tramite blacklist non è efficace
Oracle Linuxrpmkernel o kernel-uekUEK rilevato tramite la sottostringa uek in uname -r
openSUSE / SLESrpmkernel-default
Alpineapklinux-lts / linux-virt / ecc.La variante viene scelta dal suffisso della release
Arch / CachyOS / Manjaro / Endeavour / Gentoonessunon/dRolling/source: si basa sul controllo della versione del kernel

Distribuzione

Installazione Automatica

Rileva automaticamente la tua architettura, scarica il binario corretto in $(pwd) e verifica il suo SHA-256 rispetto ai SHA256SUMS pubblicati:

root@kitploit:~
curl -fsSL https://copyfail.pcdoyle.dev/install.sh | sh

Lo script esce con codice non-zero in caso di mancata corrispondenza del checksum e rimuove il file danneggiato.

Scaricare il Binario (manuale)

Scegli il binario per l'architettura del tuo host:

ArchitetturaBinario
Intel/AMD 64-bit (x86_64)cvecheck-linux-x86_64
ARM 64-bit (aarch64)cvecheck-linux-arm64
Intel/AMD 32-bit (i?86)cvecheck-linux-x86

Verifica prima di eseguire:

root@kitploit:~
curl -LO https://github.com/pcdoyle/copy-fail-cve-2026-31431/releases/latest/download/cvecheck-linux-x86_64
curl -LO https://github.com/pcdoyle/copy-fail-cve-2026-31431/releases/latest/download/SHA256SUMS
sha256sum --ignore-missing -c SHA256SUMS
chmod +x cvecheck-linux-x86_64

Compilare dal Sorgente

root@kitploit:~
make build  # bin/cvecheck-linux-{x86_64,arm64,x86}
# SCP(SFTP) al Server:
scp ./bin/cvecheck-linux-x86_64 host:/tmp/  # Meno di 4 MB, statico, nessuna dipendenza da glibc

Eseguire il Programma

SSH all'Host

root@kitploit:~
# SSH:
ssh <host>
# Eseguire il Binario:
/tmp/cvecheck-linux-x86_64  # Output grafico leggibile.
/tmp/cvecheck-linux-x86_64 --format=json # Adatto a Script, Syslog e SIEM
/tmp/cvecheck-linux-x86_64 --format=text # Adatto a Script e Pipe

Eseguire come Comando Remoto SSH

root@kitploit:~
ssh <host> /tmp/cvecheck-linux-x86_64   # Se eseguito direttamente, il default è --format=text
ssh <host> /tmp/cvecheck-linux-x86_64 --format=json # Adatto a Syslog/SIEM

Per Container/Chroot:

Monta la root dell'host in una posizione leggibile e passa --root:

root@kitploit:~
docker run --rm -v /:/host:ro alpine /tmp/cvecheck --root /<host-path>

--root controlla tutte le ricerche su disco (/etc/os-release, modprobe.d, /lib/modules, /boot/config-*, file changelog). La sonda della versione del kernel e del meccanismo toccano comunque il kernel in esecuzione tramite uname(2) e socket(AF_ALG, ...).


Scala di Precedenza

Risolta in questo ordine (vince la prima corrispondenza):

  1. PATCHED: Il changelog della distribuzione fa riferimento all'ID CVE.
  2. NOT_VULNERABLE: Il kernel in esecuzione è >= alla versione corretta a monte.
  3. MITIGATED: algif_aead in blacklist e non caricato e non compilato in vmlinux.
  4. LIKELY_NOT_EXPLOITABLE: AF_ALG non disponibile e modulo non su disco.
  5. MECHANISM_REACHABLE: Superficie raggiungibile ma versione del kernel non controllata.
  6. VULNERABLE: Kernel nell'intervallo vulnerabile e meccanismo raggiungibile.
  7. INCONCLUSIVE: Nessuna delle precedenti corrisponde.

Se --mechanism viene eseguito insieme a --kernel-version ed entrambi segnalano problemi, il risultato è VULNERABLE con un suggerimento di rimedio.


Suggerimenti di Rimedio

  • Distribuzioni con moduli caricabili (Debian, Ubuntu, SUSE, Alpine, Arch): inserisci algif_aead in blacklist finché non arriva l'aggiornamento del kernel.
    root@kitploit:~
    echo 'blacklist algif_aead' | sudo tee /etc/modprobe.d/cve-2026-31431.conf
    sudo rmmod algif_aead 2>/dev/null
    
  • Distribuzioni con modulo integrato (RHEL, CentOS, Rocky, Alma, Oracle, Amazon): i file di blacklist sono inefficaci perché CONFIG_CRYPTO_USER_API_AEAD=y mette il simbolo dentro vmlinux. Solo un aggiornamento del kernel (o una live patch stile kpatch) risolve l'esposizione. Lo strumento lo rileva.

Risoluzione dei Problemi

SintomoCausaSoluzione
changelog: error="apt: exit status 100 ... Changelog unavailable for linux-signed-amd64"Kernel firmato Debian/Ubuntu; il mirror apt non serve il changelog del pacchetto sorgenteL'errore appare solo quando il file su disco manca oltre al mirror inaccessibile; installa apt-doc o attendi il mirror.
module: ... config_src=""Nessun config del kernel leggibile (niente /boot/config-*, niente /proc/config.gz, /boot è accessibile solo da root)Esegui come root, oppure accetta che BuiltIn non possa essere determinato. Il verdetto può comunque essere risolto tramite altri segnali.
mechanism: error="EAFNOSUPPORT"Kernel compilato senza CONFIG_CRYPTO_USER_API, quindi l'host non è vulnerabile tramite AF_ALGIl verdetto sarà LIKELY_NOT_EXPLOITABLE.

Fonti

  • Database CVE NIST
  • Sito Ufficiale Copy.Fail
  • Analisi Tecnica Ufficiale
  • Avviso oss-security
  • Analisi Theori
  • Riepilogo Bugcrowd
Scarica lo strumento