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
block-copyfail — BPF LSM blocker per CVE-2026-31431 (Copy Fail) — blocca i bind AF_ALG authencesn in runtime senza riavviare | Kitploit
Strumenti/GitHubGitHub/atgreen/block-copyfail
Strumenti DifensiviAnalisi Dinamica (Sandboxing)Analisi delle VulnerabilitàRisposta agli Incidenti
GitHubatgreen/block-copyfail

block-copyfail

BPF LSM blocker per CVE-2026-31431 (Copy Fail) — blocca i bind AF_ALG authencesn in runtime senza riavviare

Vedi Repository
733 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

block-copyfail

Prova di concetto di mitigazione runtime per CVE-2026-31431 ("Copy Fail") — un'escalation di privilegi nel kernel Linux tramite il template crittografico authencesn in algif_aead.

A differenza del blacklisting dei moduli, questo non richiede riavvio. Un programma BPF LSM aggancia socket_bind e blocca tutti i bind AEAD AF_ALG — il sottosistema sfruttato da Copy Fail. Questo impedisce bypass tramite annidamento di template crittografici (es. pcrypt(authencesn(...))). Altri usi di AF_ALG (hash, skcipher) non vengono influenzati.

I tentativi bloccati vengono registrati in tempo reale con PID, nome del processo e timestamp.

Prerequisiti

  • Kernel Linux 5.7+ con CONFIG_BPF_LSM=y e lsm=bpf nei parametri di avvio
  • SBCL 2.0+
  • Whistler (compilatore eBPF in Common Lisp)
root@kitploit:~
make doctor   # verifica tutti i prerequisiti

Avvio rapido

root@kitploit:~
git clone https://github.com/atgreen/block-copyfail.git
cd block-copyfail
make ubi8-build
sudo ./block-copyfail

Il blocco rimane attivo finché non premi Ctrl-C, poi si scollega in modo pulito.

Compilazione locale

Per compilare sulla tua macchina ti servono SBCL e Whistler (il compilatore eBPF in Common Lisp):

root@kitploit:~
git clone https://github.com/atgreen/whistler.git ~/git/whistler
make build
sudo ./block-copyfail

Compilazione di un binario portabile (EL8+)

Compila all'interno di un container UBI8 per produrre un binario che funziona su RHEL/CentOS/Alma/Rocky 8+, Fedora, Ubuntu 20.04+ e qualsiasi Linux con glibc 2.28 o successiva. Non serve SBCL o Whistler sul sistema di destinazione — basta copiare il binario ed eseguirlo.

root@kitploit:~
make ubi8-build
scp block-copyfail root@server:
ssh root@server ./block-copyfail

Compilazione in oggetto ELF

Produce un file .bpf.o standard caricabile con bpftool, libbpf o qualsiasi loader BPF:

root@kitploit:~
make elf
sudo mkdir -p /sys/fs/bpf/copyfail
sudo bpftool prog loadall block-copyfail.bpf.o /sys/fs/bpf/copyfail autoattach

Per scollegare e rimuovere:

root@kitploit:~
sudo rm -rf /sys/fs/bpf/copyfail

Test

Con il blocco attivo in un terminale, attiva un test in un altro:

root@kitploit:~
python3 trigger-test.py

Lo script di test tenta un bind AEAD AF_ALG (non viene eseguito alcun exploit).

Output previsto nel terminale di test:

root@kitploit:~
BLOCKED: aead/authencesn(hmac(sha256),cbc(aes)) — [Errno 1] Operation not permitted
BLOCKED: aead/gcm(aes) — [Errno 1] Operation not permitted
ALLOWED: hash/sha256
ALLOWED: skcipher/cbc(aes)

Output previsto nel terminale del blocco:

root@kitploit:~
Copy Fail blocker active — all AF_ALG AEAD binds blocked.
Other AF_ALG usage (hash, skcipher) unaffected.
Watching for blocked attempts. Press Ctrl-C to exit.

TIME                  PID       COMMAND
----                  ---       -------
06:38:12               31337  python3

Senza il blocco attivo, lo script di test stampa ALLOWED per tutti e quattro gli algoritmi.

Come funziona

Il programma BPF legge 7 byte di struct sockaddr_alg dagli argomenti di socket_bind tramite bpf_probe_read_kernel, verifica che salg_family == AF_ALG e salg_type == "aead", e restituisce -EPERM in caso di corrispondenza. Questo blocca tutti i bind di algoritmi AEAD indipendentemente dall'annidamento dei template. Gli eventi vengono inviati allo spazio utente tramite un ring buffer.

Scritto in Whistler, un dialetto di Common Lisp che compila direttamente in bytecode eBPF — senza C, clang o LLVM.

Licenza

MIT

Scarica lo strumento