Sono state individuate vulnerabilità sfruttabili nel kernel Linux in nf_tables, watch_queue e IPsec

Nel kernel Linux sono state individuate diverse vulnerabilità pericolose che consentono a un utente locale di elevare i propri privilegi nel sistema. Per tutti i problemi esaminati sono stati preparati prototipi funzionanti di exploit.

  • La vulnerabilità (CVE-2022-0995) nel sottomodulo di monitoraggio eventi watch_queue porta a scrivere dati in aree di memoria del kernel oltre il buffer allocato. L'attacco può essere eseguito da qualsiasi utente non privilegiato ed è in grado di eseguire il proprio codice con i privilegi del kernel. La vulnerabilità è presente nella funzione watch_queue_set_size() ed è legata al tentativo di liberare tutti i puntatori nella lista, anche se non era stata allocata memoria per essi. Il problema si manifesta quando si compila il kernel con l'opzione "CONFIG_WATCH_QUEUE=y", che è utilizzata nella maggior parte delle distribuzioni Linux.

    La vulnerabilità è stata risolta in una modifica aggiunta al kernel l'11 marzo. È possibile seguire la pubblicazione degli aggiornamenti dei pacchetti nelle distribuzioni su queste pagine: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Un prototipo di exploit è già disponibile pubblicamente e consente di ottenere l'accesso root avviando Ubuntu 21.10 con il kernel 5.13.0-37.

    Sono state individuate vulnerabilità sfruttabili nel kernel Linux in nf_tables, watch_queue e IPsec
  • La vulnerabilità (CVE-2022-27666) nei moduli del kernel esp4 ed esp6 con implementazione delle trasformazioni ESP (Encapsulating Security Payload) per IPsec, utilizzate con IPv4 e IPv6. La vulnerabilità consente a un utente locale con privilegi normali di sovrascrivere oggetti nella memoria del kernel ed elevare i propri privilegi nel sistema. Il problema è causato dalla mancanza di controllo tra la dimensione di memoria allocata e i dati effettivamente ricevuti, dato che la dimensione massima del messaggio potrebbe superare la dimensione massima di memoria allocata per la struttura skb_page_frag_refill.

    La vulnerabilità è stata risolta nel kernel il 7 marzo (corretta in 5.17, 5.16.15 e così via). È possibile seguire la pubblicazione degli aggiornamenti dei pacchetti nelle distribuzioni su queste pagine: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Un prototipo funzionante dell'exploit, che consente a un utente normale di ottenere l'accesso root in Ubuntu Desktop 21.10 nella configurazione predefinita, è già stato pubblicato su GitHub. Si sostiene che con modifiche minori l'exploit fungerà anche in Fedora e Debian. È interessante notare che l'exploit era originariamente stato preparato per la competizione pwn2own 2022, ma gli sviluppatori del kernel hanno scoperto e corretto un errore associato, quindi è stato deciso di rivelare i dettagli della vulnerabilità.

  • Due vulnerabilità (CVE-2022-1015, CVE-2022-1016) nel sottosistema netfilter nel modulo nf_tables, che gestisce il filtraggio dei pacchetti nftables. Il primo problema consente a un utente locale senza privilegi di scrivere oltre il buffer allocato nello stack. Il overflow si verifica durante la gestione di espressioni nftables formattate in un certo modo, elaborate nella fase di verifica degli indici forniti dall'utente che ha accesso alle regole nftables.

    La vulnerabilità è causata dal fatto che gli sviluppatori presumevano che il valore ‘enum nft_registers reg’ fosse un byte, mentre abilitando alcune ottimizzazioni, il compilatore secondo la specifica C89 può utilizzarne uno a 32 bit. A causa di questa particolarità, la dimensione utilizzata per la verifica e l'allocazione della memoria non corrisponde alla dimensione reale dei dati nella struttura, il che porta a sovrapporre la coda della struttura ai puntatori nello stack.

    Il problema può essere sfruttato per eseguire codice a livello di kernel, ma per un attacco riuscito è necessario avere accesso a nftables, accessibile in uno spazio di rete separato (network namespaces) se si dispone dei diritti CLONE_NEWUSER o CLONE_NEWNET (ad esempio, se si ha la possibilità di avviare un contenitore isolato). La vulnerabilità è inoltre strettamente legata alle ottimizzazioni applicate dal compilatore, che ad esempio vengono attivate durante la compilazione in modalità ‘CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y’. L'exploitation della vulnerabilità è possibile a partire dal kernel Linux 5.12.

    La seconda vulnerabilità in netfilter è causata dall'accesso a un'area di memoria già liberata (use-after-free) nel gestore nft_do_chain e può portare a perdite di aree di memoria non inizializzate nel kernel, leggibili tramite manipolazioni delle espressioni nftables e utilizzabili, ad esempio, per determinare gli indirizzi dei puntatori nello sviluppo di exploit per altre vulnerabilità. L'exploitation della vulnerabilità è possibile a partire dal kernel Linux 5.13.

    Le vulnerabilità sono state corrette negli aggiornamenti del kernel odierno 5.17.1, 5.16.18, 5.15.32, 5.10.109, 5.4.188, 4.19.237, 4.14.274 e 4.9.309. È possibile seguire le pubblicazioni degli aggiornamenti dei pacchetti nelle distribuzioni sulle seguenti pagine: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Il ricercatore che ha identificato i problemi ha annunciato di avere a disposizione exploit funzionanti per entrambe le vulnerabilità, che verranno pubblicati tra pochi giorni, dopo che le distribuzioni rilasceranno gli aggiornamenti dei pacchetti con il kernel.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster