// 6 ZERO-DAY · 8 CVE · 8 EXPLOIT · 1 ADVISORY NELLE ULTIME 24H
Fragnesia sfrutta un errore in skb_try_coalesce() per corrompere il page cache e ottenere root. Disclosed il 13 maggio, con PoC pubblico e patch in v7.1-rc5.

Il 13 maggio 2026 è emersa CVE-2026-46300, soprannominata Fragnesia, una vulnerabilità di privilege escalation locale nel kernel Linux che permette a un utente non privilegiato di ottenere privilegi di root corrompendo il page cache di binari privilegiati. La falla colpisce specificamente il sottosistema XFRM ESP-in-TCP e rappresenta una variante della famiglia DirtyFrag, con Proof-of-Concept pubblico disponibile e patch upstream rilasciata il 24 maggio 2026 in Linux v7.1-rc5. L'impatto è massimo in ambienti cloud multi-tenant come Google Kubernetes Engine, dove namespace utente non privilegiati sono abilitati di default.

Punti chiave
  • CVE-2026-46300 (Fragnesia) ha CVSS 7.8 HIGH con vettore di attacco locale e PoC pubblico confermato, secondo Tenable Research
  • Il bug risiede in skb_try_coalesce() che perde il flag SKBFL_SHARED_FRAG durante il trasferimento di paged frags, come documentato nell'advisory CISA per B&R Industrial Automation
  • ESP input decritta in-place su page cache condiviso, corrompendo binari in memoria senza alterare il file su disco
  • Siemens ha rilasciato patch in firmware V3.1.6; B&R conferma impatto su Linux for B&R ≤12; le patch DirtyFrag originali non correggono questa variante

Il meccanismo: una flag persa in una funzione di ottimizzazione

Il kernel Linux utilizza zero-copy networking dove il page cache di file può essere referenziato direttamente come paged frags all'interno di socket buffer (skb). Il flag SKBFL_SHARED_FRAG marca questi frags come condivisi con page cache esterna. Quando skb_try_coalesce() trasferisce frags tra skb, non propaga questo flag. Successivamente, ESP input (IPsec) controlla skb_has_shared_frag() per decidere se eseguire COW (copy-on-write) prima della decrittazione in-place; senza il flag, ESP scrive direttamente nel page cache condiviso.

La conseguenza è una primitive di scrittura arbitraria ricorrente: un attaccante può corrompere il page cache di binari privilegiati già caricati in memoria, modificandone il comportamento senza toccare il file su disco. Questo elude i controlli di integrità file basati su hash e lascia tracce minime per l'analisi forense post-incidente.

Come si ottiene l'escalation: CAP_NET_ADMIN via namespace

L'exploit richiede il capability CAP_NET_ADMIN, normalmente riservato a root. Tuttavia, su Debian e Fedora abilitati di default, questo capability è ottenibile tramite unprivileged user namespaces. Un container o processo in namespace utente non privilegiato può così configurare stack IPsec e innescare il percorso vulnerabile ESP-in-TCP.

La variante è particolarmente insidiosa perché non richiede race condition: il PoC pubblico funziona in modo deterministico. Secondo Tenable Research, le patch DirtyFrag originali non correggono Fragnesia, rendendo necessario un aggiornamento kernel specifico.

"Il problema sottostante non è una singola funzione helper difettosa. È un problema di contratto: ogni percorso di codice che sposta frammenti skb deve preservare il bit shared-frag, ogni volta." — JFrog Security Research, via The Hacker News

Timeline e disponibilità delle patch

La disclosure di Fragnesia è avvenuta il 13 maggio 2026. La patch upstream è stata integrata in Linux v7.1-rc5 il 24 maggio 2026, con commit che propaga esplicitamente SKBFL_SHARED_FRAG in skb_try_coalesce(). Siemens ha successivamente rilasciato il fix nel firmware V3.1.6, come documentato nell'avviso SSA-019113. B&R Industrial Automation ha confermato l'impatto su prodotti che utilizzano Linux for B&R versione 12 o precedente.

Non emergono nel dossier conferme di exploitation attiva in-the-wild al momento della pubblicazione. Tuttavia, la combinazione di PoC pubblico, assenza di race condition e bypass delle patch precedenti costituisce un profilo di rischio elevato per ambienti non ancora aggiornati.

Cosa fare adesso

Aggiornare il kernel alla versione che include il commit per skb_try_coalesce(), identificato in Linux v7.1-rc5 e successivi backport vendor.

Verificare la versione firmware su dispositivi Siemens e B&R: il firmware V3.1.6 di Siemens corregge CVE-2026-46300; per B&R è necessario Linux for B&R aggiornato oltre la versione 12.

Valutare la disabilitazione di unprivileged user namespaces dove l'impatto operativo su container e pipeline CI/CD sia gestibile, dato che questo capability è il prerequisito per l'exploitation su configurazioni default Debian/Fedora.

Monitorare il page cache per anomalie di scrittura su binari privilegiati in memoria, con attenzione specifica ai processi che configurano XFRM/ESP in contesti namespace non privilegiati.

Perché il pattern DirtyFrag non si ferma alle patch puntuali

Fragnesia si inserisce in una famiglia di vulnerabilità — DirtyFrag — che sfrutta la stessa superficie d'attacco: la manipolazione del page cache attraverso primitive di scrittura via networking. Ogni fix che intercetta un singolo percorso di codice lascia aperta la possibilità di varianti che trovano altri helper che perdono il contratto di shared-frag. La citazione di JFrog Security Research evidenzia questo punto: il problema è strutturale, non isolato.

Per gli operatori di infrastruttura cloud, questo significa che la gestione del rischio richiede non solo patching reattivo ma anche una revisione dell'architettura di isolamento. Gli ambienti GKE e container multi-tenant dove namespace utente non privilegiati sono abilitati di default presentano una superficie di attacco sistemica che le patch puntuali non mitigano completamente.

FAQ

Fragnesia richiede accesso fisico alla macchina?

No. È una vulnerabilità locale che richiede accesso utente al sistema, ma non accesso fisico. In ambienti containerizzati o cloud, un utente con shell in pod o container può innescare l'exploit.

Perché le patch DirtyFrag originali non proteggono?

Le patch DirtyFrag intercettavano altri percorsi di codice che manipolavano paged frags. Fragnesia sfrutta specificamente skb_try_coalesce(), che non era stato incluso nella revisione originale del contratto shared-frag.

Google ha confermato GKE vulnerabile?

Il dossier non contiene un advisory GKE specifico per CVE-2026-46300. Il contesto GKE è inferito dalla combinazione di: uso di kernel Linux e containerd in GKE, abilitazione di unprivileged user namespaces in configurazioni default, e descrizione dell'impatto container multi-tenant nelle fonti di analisi. La fonte primaria cloud.google.com non menziona questa CVE specifica.

Fonti

Le informazioni sono state verificate sulle fonti citate e aggiornate al momento della pubblicazione.

Fonti


Fonti e riferimenti
  1. docs.cloud.google.com
  2. tenable.com
  3. cert-portal.siemens.com
  4. cisa.gov
  5. securelist.com
  6. securityweek.com
  7. thehackernews.com