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 — Script shell idempotente che installa una regola iptables persistente che scarta i pacchetti TCP IPv4 con opzioni IP per mitigare CVE-2026-98432 su Ubuntu e Debian fino alla disponibilità di un kernel corretto. | Kitploit
Strumenti/GitHubGitHub/mervent/cve-2026-98432
Strumenti DifensiviAnalisi delle VulnerabilitàScripting e AutomazioneAudit di ConfigurazioneSicurezza di ReteConfigurazione ErrataRisposta agli Incidenti
GitHubmervent/cve-2026-98432

cve-2026-98432

Script shell idempotente che installa una regola iptables persistente che scarta i pacchetti TCP IPv4 con opzioni IP per mitigare CVE-2026-98432 su Ubuntu e Debian fino alla disponibilità di un kernel corretto.

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

Mitigazione temporanea di CVE-2026-98432 per Ubuntu e Debian

Un singolo script idempotente che scarta i pacchetti TCP IPv4 in ingresso che trasportano opzioni IP, mantiene la regola attraverso i riavvii e verifica che funzioni. È pensato per server Ubuntu (18.04 – 24.04) e Debian (11 – 13) che non possono ancora ottenere un kernel corretto.

Questa è una soluzione tampone, non una correzione. L'unica vera correzione è un kernel con patch più un riavvio. Rimuovere questa mitigazione una volta che il server esegue un kernel corretto.

Utilizzo

curl -fsSL https://raw.githubusercontent.com/Mervent/cve-2026-98432/master/install.sh | sudo sh

Puoi eseguirlo quante volte vuoi: i file vengono sovrascritti e la regola non viene mai duplicata. Al termine lo script convalida il risultato ed esce con codice non-zero in caso di qualsiasi errore:

--- validation ---
OK    helper installed: /usr/local/sbin/cve-2026-98432-mitigation
OK    cron entry: /etc/cron.d/cve-2026-98432
OK    cron service enabled
OK    iptables rule active (raw/PREROUTING)
OK    exactly one rule (no duplicates)
      plain SYN: connected, SYN with IP options: timeout
OK    drop test: packets with IP options are dropped
--- rule counters ---
 pkts bytes target     prot opt in     out     source               destination
    3   204 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            u32 "0x0>>0x18&0xf=0x6:0xf" /* cve-2026-98432 */

Cosa installa

PercorsoScopo
/usr/local/sbin/cve-2026-98432-mitigationHelper che mantiene la regola. Senza argomenti aggiunge la regola se manca. --check esce con 0 se la regola è attiva. --remove la elimina.
/etc/cron.d/cve-2026-98432Voce @reboot che riapplica la regola dopo ogni avvio

La regola stessa:

iptables -t raw -I PREROUTING -p tcp -m u32 --u32 "0>>24&0xF=6:15" \
    -m comment --comment cve-2026-98432 -j DROP

Verifica dopo un riavvio

sudo /usr/local/sbin/cve-2026-98432-mitigation --check && echo active
sudo iptables -t raw -L PREROUTING -v -n | grep cve-2026-98432

Rimuovere dopo l'avvio in un kernel fisso

sudo /usr/local/sbin/cve-2026-98432-mitigation --remove
sudo rm /usr/local/sbin/cve-2026-98432-mitigation /etc/cron.d/cve-2026-98432

Per verificare se la tua distribuzione ha rilasciato una correzione, consulta Ubuntu o Debian (per Debian 9 – 11, il tracker Freexian ELTS). Quando la tua release mostra "Fixed", esegui apt update && apt full-upgrade, riavvia, poi rimuovi la mitigazione.

A partire dal 1° novembre 2026, Debian 12 (linux 6.1.190-1, DLA-4841-1) e Debian 13 (linux 6.12.113-1, DSA-6568-1) hanno già kernel corretti, quindi su quelle release esegui l'aggiornamento invece di usare questo script. La correzione di Debian 11 (linux 5.10.272-1, ELA-1846-1) è solo nel repository ELTS di Freexian: commerciale, ma gratuito su richiesta per privati e piccole organizzazioni non profit.

Motivazione

La vulnerabilità

CVE-2026-98432 ("ipv4: free inet_opt and ireq_opt after an RCU grace period") è una use-after-free nella handshake TCP IPv4. Colpisce Linux 4.4 e successivi ed è valutata CVSS 9.8.

Se un SYN trasporta opzioni IPv4, il kernel le salva sul request socket per poterle rimandare nel SYN-ACK. tcp_v4_syn_recv_sock() passa poi quel buffer al socket figlio senza copiarlo. Quando il socket figlio muore, il buffer viene liberato con un semplice kfree(), mentre un'altra CPU potrebbe ancora leggerlo per costruire un SYN-ACK per un SYN ritrasmesso.

Tutto questo avviene nel kernel prima che qualsiasi applicazione veda la connessione. Qualsiasi porta TCP IPv4 in ascolto è raggiungibile in questo modo (SSH, HTTP, PostgreSQL e così via), e non sono necessarie credenziali. Anthropic ha segnalato un exploit funzionante per root remoto contro host che hanno un listener multipath TCP (MPTCP). Il Go Security Team osserva che il bug non è specifico di MPTCP.

Perché scartare i pacchetti TCP con opzioni IP

La memoria che viene liberata troppo presto esiste solo quando il SYN in ingresso trasporta opzioni IPv4. Senza opzioni non c'è alcun buffer salvato, quindi la use-after-free non ha nulla su cui agire. Il traffico TCP legittimo praticamente non trasporta mai opzioni IPv4, quindi scartare quei pacchetti non costa nulla in pratica. Red Hat (RHSB-2026-016) e AlmaLinux pubblicano una regola nftables equivalente.

u32 "0>>24&0xF=6:15" legge il campo IHL, la lunghezza dell'header IPv4 in parole da 32 bit. Un valore di 5 è l'header nudo da 20 byte. Valori da 6 a 15 indicano la presenza di opzioni.

Red Hat afferma che una tale regola "riduce l'esposizione a questa vulnerabilità ma non può prevenirla completamente". Considerala una riduzione del rischio finché il kernel non è corretto.

Perché raw / PREROUTING

  • PREROUTING vede ogni pacchetto in ingresso, sia il traffico verso l'host sia il traffico inoltrato ai container Docker sulle porte pubblicate. Una regola in INPUT, che è dove ufw mette le sue regole, mancherebbe il traffico inoltrato.
  • La tabella raw viene eseguita prima del connection tracking, quindi i pacchetti scartati non creano mai voci conntrack.
  • ufw e Docker non svuotano raw/PREROUTING, quindi la regola sopravvive ai loro riavvii.

Perché iptables, non nftables

  • iptables è presente su ogni release target di Ubuntu. Su Ubuntu 18.04 e 20.04 usa il backend legacy; da Ubuntu 22.04 e su Debian 11+ è iptables-nft. Il binario nft non è installato di default ovunque. Su Debian, iptables stesso potrebbe mancare; lo script allora ti chiede di eseguire apt install iptables.
  • Con iptables-nft, ufw/Docker e questa regola condividono il backend nf_tables, quindi una sola regola copre entrambi.
  • Il match u32 richiede il modulo kernel xt_u32. Se manca, lo script fallisce e ti dice di controllare modinfo xt_u32.

Perché una voce cron @reboot

  • Non nftables.service. Su Ubuntu /etc/nftables.conf inizia con flush ruleset, e il servizio esegue nft flush ruleset allo stop. Entrambi cancellano le regole di ufw e Docker.
  • Non iptables-persistent. netfilter-persistent save esporta ogni regola corrente, incluse quelle di Docker, e il ripristino di tale snapshot all'avvio entra in conflitto con le regole che Docker crea da sé.
  • Non ufw before.rules. Funziona solo quando ufw è abilitato, e le sue catene non vedono il traffico inoltrato verso i container.
  • cron.d. È installato sui server standard Ubuntu e Debian (lo script ne verifica la presenza), un file in /etc/cron.d è idempotente tramite sovrascrittura, e rimuoverlo richiede un solo rm. Il compromesso è una finestra di pochi secondi dopo l'avvio in cui la rete è attiva ma cron non ha ancora applicato la regola. Ciò è accettabile per una mitigazione che deve durare solo fino al prossimo aggiornamento del kernel.

Perché non basta net.mptcp.enabled=0

Disabilitare MPTCP rimuove la precondizione dell'unico exploit pubblicato, non il bug. I listener TCP semplici passano comunque attraverso lo stesso codice vulnerabile. Su un server senza listener MPTCP (ss -Mlnp non stampa nulla) il sysctl non cambia assolutamente nulla. È un'aggiunta innocua, non un sostituto di questa regola.

Validazione

Lo script verifica che l'helper e la voce cron siano installati, che cron sia abilitato e che sia attiva esattamente una regola. Esegue poi un test end-to-end di scarto dei pacchetti con python3, saltato se python3 è assente:

  1. Apre un listener su 127.0.0.1.
  2. Si connette una volta senza opzioni IP; questa connessione deve riuscire.
  3. Si connette una volta con un'opzione IP Record Route; questa connessione deve andare in timeout.
Scarica lo strumento