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-98432-ebpf — Mitigazione eBPF (XDP/tc) per CVE-2026-98432 / RHSB-2026-016 - bozza | Kitploit
Strumenti/GitHubGitHub/sevaepsteyn/cve-2026-98432-ebpf
Sicurezza dell'Infrastruttura CloudStrumenti DifensiviSniffing e Analisi dei PacchettiSicurezza dei ContenitoriAnalisi delle VulnerabilitàSicurezza di ReteRisposta agli Incidenti
GitHubsevaepsteyn/cve-2026-98432-ebpf

cve-2026-98432-ebpf

Mitigazione eBPF (XDP/tc) per CVE-2026-98432 / RHSB-2026-016 - bozza

Vedi Repository
36 giorni 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-2026-98432-ebpf

Un'implementazione eBPF della mitigazione di rete pubblicata per CVE-2026-98432 ([RHSB-2026-016]): una use-after-free attivabile da remoto nella gestione delle richieste di connessione TCP IPv4 del kernel Linux. Red Hat la classifica come Critica.

[!WARNING] Rilascio anticipato: testato in CI, non ancora testato sul campo. Ogni push esegue test end-to-end su Ubuntu 24.04, in VM AlmaLinux 8.10, 9.8 e 10.2 (kernel compatibili RHEL 4.18, 5.14 e 6.12), e su un cluster Kubernetes (kind) a 2 nodi con Cilium, tutti con interfacce virtuali. Non è ancora stato testato su NIC fisiche, bond o VLAN, su OpenShift, né su RHEL reale (vedi Piattaforme testate). Provalo prima su un host non di produzione. I resoconti dei risultati, positivi o negativi, sono molto benvenuti.

Il programma scarta i pacchetti TCP IPv4 in ingresso che trasportano opzioni IP (lunghezza dell'header IP > 5 word). È lo stesso filtro della regola nftables del vendor:

ip protocol tcp ip hdrlength > 5 counter drop

Applica lo stesso controllo al pacchetto interno degli overlay VXLAN (UDP 4789, 8472) e Geneve (UDP 6081). In questo modo, il traffico pod-to-pod di Kubernetes tra i nodi viene scartato sull'interfaccia fisica, prima che un plugin CNI come Cilium possa consegnarlo a un pod. Viene eseguito come XDP dove il driver lo supporta, e come tc ingress ovunque altrove.

Ci sono due modi per eseguirlo, con lo stesso filtro e le stesse impostazioni:

  • il loader shell (cve-2026-98432-ebpf), che utilizza ip e tc ed è gestito da un servizio e un timer systemd. È il più semplice da verificare.
  • il daemon Go (cve-2026-98432-ebpfd), un singolo binario statico. Copre immediatamente le nuove interfacce, viene eseguito prima dei programmi CNI su tc e mantiene il filtro collegato in caso di crash. Vedi Loader shell o daemon Go?

[!IMPORTANT] Questa è una soluzione tampone che riduce l'esposizione, non corregge il bug. L'unica correzione completa è un kernel aggiornato. Rimuovi questa mitigazione una volta che ogni host ne esegue uno (vedi Rimozione).

Questo è un progetto comunitario indipendente. Non è affiliato né approvato da Red Hat o da qualsiasi distributore Linux. Consulta il [bollettino][RHSB-2026-016] per le indicazioni aggiornate.

Perché eBPF invece della regola nftables?

La regola nftables funziona, e se si adatta al tuo ambiente, usala. Questo progetto è pensato per gli ambienti in cui non funziona:

regola nftablesquesto progetto
Dove vengono scartati i pacchettihook input di netfilter (dopo l'allocazione dello skb, la deframmentazione IP e il routing)XDP: nel driver, prima che esista uno skb. tc: prima di netfilter
CoperturaSolo traffico indirizzato localmenteAnche traffico instradato e inoltrato, ad es. pacchetti verso i pod Kubernetes, inclusi all'interno degli overlay VXLAN/Geneve
Interazione con i gestori di firewallUna tabella separata che deve essere resa persistente e sopravvivere agli strumenti che riscrivono il rulesetNon tocca affatto netfilter
Richiedenftablesiproute2 compilato con libbpf
Per interfacciaNo (globale)Sì, e il loader se ne occupa (vedi sotto)

Installazione su AlmaLinux, Rocky, CentOS Stream o RHEL 8, 9 e 10 (RPM)

L'ultima release contiene:

  • per ciascuna di el8, el9 ed el10 (x86_64), compilate nel container AlmaLinux corrispondente: l'RPM principale (loader shell), l'RPM -daemon (daemon Go) e l'RPM sorgente
  • un tarball sorgente, cve-2026-98432-ebpf-<version>.tar.gz
  • SHA256SUMS

L'RPM installa il loader, gli oggetti BPF, il file di configurazione e le unit systemd, e include iproute-tc. Il servizio non viene abilitato automaticamente. Scegli l'RPM corrispondente alla tua versione principale (el8, el9 o el10):

sha256sum -c SHA256SUMS --ignore-missing     # verify what you downloaded
sudo dnf install ./cve-2026-98432-ebpf-0.1.1-1.el9.x86_64.rpm
sudo systemctl enable --now cve-2026-98432-ebpf.service cve-2026-98432-ebpf-reconcile.timer
sudo cve-2026-98432-ebpf status

Oppure, per il demone Go (usare uno o l'altro, non entrambi; le loro unità sono in conflitto):

sudo dnf install ./cve-2026-98432-ebpf-daemon-0.1.1-1.el9.x86_64.rpm
sudo systemctl enable --now cve-2026-98432-ebpfd.service
sudo cve-2026-98432-ebpfd status

Su Debian e Ubuntu, usare i .deb (sezione successiva). Su altre distribuzioni, compilare e installare dal tarball dei sorgenti (vedere Avvio rapido).

L'aggiornamento consiste in un dnf install di un RPM più recente. Il servizio si riavvia così i nuovi oggetti BPF vengono collegati, e le modifiche a /etc/cve-2026-98432-ebpf.conf vengono mantenute.

Per compilare l'RPM autonomamente, vedere il commento all'inizio di packaging/rpm/build-rpm.sh. A ogni push, la CI compila gli RPM in container AlmaLinux, installa ciascuno in una VM AlmaLinux e lo testa, incluse le unit systemd.

Installazione su Debian 12+ o Ubuntu 22.04+ (.deb)

La release include anche due .deb amd64, che funzionano su ogni release supportata: gli oggetti BPF non contengono codice host e il daemon è un binario statico. Contengono gli stessi file degli RPM, e anch'essi non abilitano il servizio:

sha256sum -c SHA256SUMS --ignore-missing
sudo apt install ./cve-2026-98432-ebpf_0.1.1-1_amd64.deb
sudo systemctl enable --now cve-2026-98432-ebpf.service cve-2026-98432-ebpf-reconcile.timer
sudo cve-2026-98432-ebpf status

Oppure il daemon Go, ./cve-2026-98432-ebpf-daemon_0.1.1-1_amd64.deb, abilitato come nella sezione RPM. Debian e Ubuntu includono tc in iproute2 stesso, compilato con libbpf.

Per compilarli autonomamente, esegui packaging/deb/build-deb.sh. A ogni push, la CI compila i .deb, li installa su Ubuntu 24.04 ed esegue i test end-to-end e systemd sui file installati. Li installa inoltre su Debian 12 e 13 e Ubuntu 22.04 e 24.04 ed esegue check lì.

Avvio rapido (singolo host, dai sorgenti)

Usa un checkout git o il tarball dei sorgenti da una release GitHub. Per compilare, sono necessari clang, llvm, libbpf-devel / libbpf-dev e gli header UAPI del kernel:

make
sudo make install
sudo cve-2026-98432-ebpf check            # verify prerequisites
sudo systemctl enable --now cve-2026-98432-ebpf.service cve-2026-98432-ebpf-reconcile.timer
sudo cve-2026-98432-ebpf status

status elenca ogni interfaccia protetta e come è collegata, oltre al numero di pacchetti scartati (il contatore richiede bpftool):

  eth0             XDP
  wg0              tc
  packets dropped: 3

Senza systemd, esegui direttamente sudo cve-2026-98432-ebpf apply e remove.

Per compilare il daemon Go dai sorgenti, sono necessari Go ≥ 1.22, clang e gli header di libbpf:

cd go && go generate ./... && CGO_ENABLED=0 go build -o cve-2026-98432-ebpfd .
sudo ./cve-2026-98432-ebpfd run --mode auto     # SIGTERM detaches

Requisiti

  • Linux con XDP e la qdisc clsact (RHEL 8+, qualsiasi kernel ≥ 4.18).
  • iproute2 collegato a libbpf: ip -V deve menzionare libbpf. check lo verifica. Verificato in CI su AlmaLinux 8.10, 9.8 e 10.2 (iproute2 6.2 fino a 6.17) e Ubuntu 24.04.
  • tc: su RHEL, AlmaLinux, Rocky e Fedora viene distribuito separatamente, nel pacchetto iproute-tc (dnf install iproute-tc).
  • Root (CAP_NET_ADMIN + CAP_BPF/CAP_SYS_ADMIN).

Piattaforme testate

Scarica lo strumento