
Repository educativo che descrive CVE-2026-46300 (Fragnesia), una vulnerabilità di escalation locale dei privilegi nel kernel Linux. Fornisce analisi tecnica, sistemi interessati, indicatori di rilevamento e passaggi di remediation per i team difensivi.
Deposito di sensibilizzazione solamente. Questo repository non contiene codice di exploit. Il suo obiettivo è informare gli amministratori di sistema, ingegneri e team di sicurezza sulla natura della vulnerabilità e le misure di remediation disponibili.
| Campo | Valore |
|---|---|
| CVE | CVE-2026-46300 |
| Nome | Fragnesia |
| Gravità | High (CVSS 7.8) |
| Tipo | Local Privilege Escalation (LPE) |
| Componente | Linux Kernel — XFRM ESP-in-TCP subsystem |
| Scopritore | William Bowling (V12 Security / Zellic.io) |
| Divulgazione | 14 maggio 2026 |
| Patch upstream | 13 maggio 2026 — [PATCH net] net: skbuff: preserve shared-frag marker during coalescing |
| PoC pubblico | ✅ Sì (pubblicato il giorno della divulgazione) |
| Sfruttamento ITW | ❌ Nessuna osservata ad oggi |
Fragnesia è la terza vulnerabilità di una serie scoperta nel sottosistema IPsec del kernel Linux nell'arco di due settimane:
Dirty Frag (CVE-2026-43284) ──► Copy Fail (CVE-2026-43500) ──► Fragnesia (CVE-2026-46300)
Maggio 2026 Maggio 2026 14 maggio 2026
Ironically, la patch di Dirty Frag ha attivato latentemente la falla Fragnesia — la correzione di CVE-2026-43284 ha introdotto un percorso di codice che espone un bug preesistente da un commit risalente al 2013.
"Fragnesia was accidentally activated by the patch fixing CVE-2026-43284."
— Hyunwoo Kim, scopritore di Dirty Frag
La falla risiede nella funzione skb_try_coalesce() del codice socket-buffer del kernel. Durante la fusione di frammenti tra buffer, il marcatore SKBFL_SHARED_FRAG non veniva propagato, facendo perdere al kernel traccia del fatto che un frammento era appoggiato a pagine della page cache (es.: un file mappato in memoria tramite splice()).
1. L'attaccante apre un socket TCP
2. Esegue splice() di pagine da un file read-only (es. /usr/bin/su) nella receive queue
3. Il socket passa in modalità espintcp (ULP)
4. Il kernel tratta le pagine del file come testo cifrato ESP
5. La decifratura AES-GCM in-place scrive byte controllati nella page cache
6. /usr/bin/su in memoria viene corrotto → esecuzione di codice root alla prossima chiamata
reboot ripristina lo stato)CAP_NET_ADMIN senza privilegi elevatisuTutti i kernel Linux rilasciati prima del 13 maggio 2026 che includono il meccanismo SKBFL_SHARED_FRAG.
Le distribuzioni interessate includono in particolare:
| Distribuzione | Stato patch |
|---|---|
| Ubuntu 22.04 / 24.04 | ✅ Patchato |
| Debian 11 / 12 | ✅ Patchato |
| AlmaLinux | ✅ Patchato (prima di RHEL) |
| Red Hat / RHEL | ✅ Advisory pubblicato |
| SUSE / openSUSE | ✅ Advisory pubblicato |
| Amazon Linux | ✅ Advisory pubblicato |
| Fedora | ✅ Patchato |
| Arch Linux | ✅ Patchato |
| CentOS / Rocky Linux | ✅ Patchato |
Aggiornare a un kernel patchato:
# Debian / Ubuntu
sudo apt-get update && sudo apt-get dist-upgrade -y
sudo reboot
uname -r # Verificare la versione del nuovo kernel
# RHEL / AlmaLinux / Rocky Linux
sudo dnf clean metadata && sudo dnf upgrade -y
sudo reboot
# Arch Linux
sudo pacman -Syu
sudo reboot
Se un aggiornamento immediato non è possibile:
# Scaricare i moduli attivi
sudo rmmod esp4 esp6 rxrpc 2>/dev/null; true
# Blacklistare definitivamente i moduli
printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' \
| sudo tee /etc/modprobe.d/fragnesia.conf
# Rigenerare initramfs (Debian/Ubuntu)
sudo update-initramfs -u
⚠️ La stessa blacklist di moduli usata per Dirty Frag copre anche Fragnesia.
# Verificare se i moduli vulnerabili sono caricati
lsmod | grep -E '^esp4|^esp6|^rxrpc'
# Se il comando restituisce contenuto → il sistema è esposto
# Verificare la versione del kernel attuale
uname -r
cat /etc/os-release
AF_ALG tramite Seccomp/etc/passwd, /etc/sudoers, /etc/shadow, /usr/bin/susplice, add_key e unshare per gli utenti non privilegiatiSe si sospetta uno sfruttamento prima dell'applicazione della patch:
sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
⚠️ Questo cancella solo la copia in memoria. Se un attaccante ha già ottenuto i diritti root e installato una backdoor, questo comando non è sufficiente — trattare il sistema come completamente compromesso.
Gli strumenti di rilevamento devono monitorare:
/usr/bin/su, /usr/bin/sudo, /bin/bash in memoriasplice(), add_key(), unshare() da parte di utenti non privilegiatiespintcp su socket di utenti non privilegiati🔎 Gli strumenti di sicurezza basati solo sull'analisi dei file su disco non possono rilevare questo sfruttamento, perché il binario su disco rimane intatto.