
Scanner di triage locale in sola rilevazione per la CVE-2026-46300 Fragnesia del kernel Linux: valuta un kernel in esecuzione o installato rispetto alle build corrette upstream e della distribuzione. Nessun payload, nessuna rete.
fragnesia-scannerTriage locale per Fragnesia, l'escalation di privilegi nel kernel Linux CVE-2026-46300. Fornisci una versione del kernel che possiedi, e ti dice se quella build è ancora vulnerabile, e intercetta le trappole che fanno mentire un controllo di versione. Non tocca mai la rete, non carica mai un exploit, non attiva mai il bug.
La vulnerabilitàDettaglio | Valore |
|---|---|
CVE | CVE-2026-46300, soprannominata Fragnesia, una variante di Dirty Frag |
Bug | skb_try_coalesce() elimina il marcatore di frammento condiviso, quindi l'input ESP-in-TCP decifra sul posto sopra le pagine della page-cache (CWE-456) |
Impatto | Un utente locale riscrive il contenuto in cache di file che può solo leggere. La proof of concept pubblica prende di mira la copia in cache di /usr/bin/su, quindi la successiva esecuzione di quel programma esegue codice dell'attaccante come root |
Gravità | 7.8 alta, assegnata dal CNA del kernel e da NVD (AV:L/AC:L/PR:L/UI:N) |
Sfruttamento | Aggiunta a CISA KEV il 2026-10-28, scadenza federale 2026-10-31, segnalata per il triage forense. La voce di CISA afferma che può essere concatenata con le vulnerabilità PHP2Shell per impiantare webshell PHP ed eseguire comandi come root |
La catena | Dream Security ha segnalato la catena che ha compromesso 25 appliance firewall, inclusi sistemi su una rete affiliata al governo USA: PHP2Shell ottiene l'esecuzione di codice come utente web, Fragnesia la trasforma in root, anche sotto il confinamento SELinux, perché non richiede mai l'accesso in scrittura al filesystem |
Fragnesia non è un attacco remoto. Nessuno la usa contro un server dalla rete da sola. Richiede codice già in esecuzione sulla macchina, che è esattamente ciò che fornisce una webshell, un login SSH rubato o un job CI compromesso. Ecco perché si abbina a foxcornlab/php2shell-scanner: valuta il lato PHP lì, valuta il lato kernel qui.
Versioni corretteUpstream stable (commit di correzione f84eca581739)Ramo | Corretta in |
|---|---|
7.0 | 7.0.10 |
6.18 | 6.18.33 |
6.12 | 6.12.91 |
6.6 | 6.6.141 |
6.1 | 6.1.174 |
5.15 | 5.15.208 |
5.10 | 5.10.257 |
7.1 e successive | Non interessata |
Precedenti a 3.9 | Non interessata, secondo il record CVE |
Qualsiasi altro ramo (es. 6.17, 6.5) | Nessuna release corretta upstream elencata, passare a un ramo corretto |
Ubuntu (build corrette esatte)Release | Build corretta |
|---|---|
26.04 | 7.0.0-22.22 |
25.10 | 6.17.0-35.35 |
24.04 | 6.8.0-124.124 |
22.04 | 5.15.0-181.191 |
20.04 kernel standard 5.4 | Elencata come non interessata da Ubuntu |
20.04 kernel 5.15 HWE | Solo Ubuntu Pro, consultare l'advisory Pro |
Debian (build corrette esatte)Release | Build corretta |
|---|---|
13 trixie | 6.12.90-1 (DSA-6295-1) |
12 bookworm | 6.1.174-1 (DSA-6306-1) |
11 bullseye | 5.10.257-1 (DLA-4606-1) |
RHEL e derivatiPer stream, vedere RHSA-2026:19521 e successivi. Questo strumento valuta gli host RHEL rispetto alla correzione upstream e indica l'advisory, perché Red Hat non pubblica un singolo numero di versione rispetto al quale questo strumento possa valutare.
Dove le fonti discordanoDue discordanze, entrambe seguite deliberatamente. Un resoconto secondario dell'aggiornamento KEV del 28 ottobre riporta 2.7 per questa CVE; quello è il punteggio di VMware ESX dallo stesso aggiornamento, scambiato sulla voce del kernel. NVD, il CNA del kernel e Red Hat dicono tutti 7.8, quindi questo strumento segue 7.8. Secondo: l'intervallo di NVD per il ramo 5.10 arriva fino a 5.10.257, mentre il record upstream e Debian elencano entrambi 5.10.257-1 come build corretta. Questo strumento segue upstream e Debian e valuta 5.10.257 come corretta.
Trappola 1: uname nasconde il numero di uploadLa build corretta di Ubuntu per 24.04 è 6.8.0-124.124. uname -r stampa 6.8.0-124-generic. Il numero di upload dopo il secondo punto non compare mai nell'output di uname, quindi un kernel in esecuzione il cui ABI corrisponde all'ABI corretto non può essere verificato tramite uname da solo. Questo strumento classifica quel caso come UNKNOWN, non come pulito, e ti indica di controllare la versione del pacchetto linux-image installato. Un ABI inferiore all'ABI corretto è definitivamente VULNERABLE; un ABI superiore è FIXED. Passa --package-version con la versione dpkg per una classificazione definitiva.
Trappola 2: installato non significa avviatoUn pacchetto kernel corretto che è installato ma non in esecuzione non serve a nulla. --local confronta il kernel in esecuzione con il pacchetto kernel installato più recente e lo segnala chiaramente quando differiscono, e segnala /var/run/reboot-required quando è in attesa un aggiornamento del kernel.
Trappola 3: le prove risiedono in memoria, non su discoFragnesia scrive nella page cache del kernel e non tocca mai il disco. Un riavvio cancella insieme la backdoor e le prove. Se sospetti che un host sia stato compromesso, controlla prima di riavviare qualsiasi cosa: confronta una lettura normale di un file con una lettura diretta che bypassa la cache, e raccogli prima ciò che ti serve. Gli strumenti di integrità dei file che calcolano l'hash solo dei file memorizzati dopo un riavvio non lo rileveranno.
Cosa verificaUna versione del kernel fornita da te (--kernel), classificata in base alla tabella delle correzioni upstreamUna release Ubuntu (--ubuntu 24.04) con la trappola dell'ABI di cui sopra, oppure --package-version per una classificazione definitivaUna release Debian (--debian bookworm) dalla versione del pacchetto installato (le stringhe Debian uname contengono solo un numero di ABI, quindi vengono classificate UNKNOWN da sole)Questo host (--local): kernel in esecuzione, os-release, pacchetto kernel installato più recente, moduli ESP caricati (esp4, esp6, rxrpc), flag reboot-required e se PHP è installato (classificato separatamente, vedi sotto)Presenza del modulo ESP: un kernel vulnerabile con esp4/esp6 caricati ha il percorso raggiungibile attivo in questo momentoUtilizzo# grade one version
python3 fragnesia_scanner.py --kernel 6.6.140
# Ubuntu 24.04, uname only (ABI match -> UNKNOWN, upload hidden)
python3 fragnesia_scanner.py --ubuntu 24.04 --kernel 6.8.0-124-generic
# Ubuntu 24.04, definitive grade from the installed package
python3 fragnesia_scanner.py --ubuntu 24.04 --kernel 6.8.0-124-generic --package-version 6.8.0-124.124
# Debian bookworm from the installed package
python3 fragnesia_scanner.py --debian bookworm --package-version 6.1.174-1
# this host, everything at once
python3 fragnesia_scanner.py --local
# machine-readable output for fleets
python3 fragnesia_scanner.py --local --json
Codici di uscita: 0 = nessuna vulnerabilità trovata, 2 = vulnerabilità trovata, 1 = errore di scansione. UNKNOWN non modifica il codice di uscita, ma non è da considerarsi pulito.
La metà PHP della catenaSe --local trova PHP sull'host, lo segnala e rimanda a foxcornlab/php2shell-scanner per la valutazione di PHP. Questo strumento deliberatamente non valuta PHP da solo: quel scanner possiede già la tabella delle correzioni per PHP 8.2.35, 8.3.36, 8.4.27 e 8.5.12, e uno strumento che gestisce una sola tabella di correzioni è preferibile a due strumenti che divergono.
Mitigazione se non puoi applicare la patch oggi