Nel kernel Linux sono state identificate vulnerabilità sfruttabili in nf_tables, watch_queue e IPsec

Sono state identificate diverse vulnerabilità pericolose nel kernel Linux che consentono a un utente locale di aumentare i propri privilegi nel sistema. Per tutti i problemi considerati sono stati preparati prototipi funzionanti di exploit.

  • Una vulnerabilità (CVE-2022-0995) nel sottosistema di tracciamento degli eventi watch_queue consente la scrittura dei dati in un buffer fuori dai limiti nella memoria del kernel. L'attacco può essere effettuato da qualsiasi utente non privilegiato e far sì che il suo codice venga eseguito con i diritti del kernel. La vulnerabilità esiste nella funzione watch_queue_set_size() ed è associata al tentativo di cancellare tutti i puntatori in un elenco, anche se per essi non è stata allocata memoria. Il problema si verifica quando si compila il kernel con l'opzione "CONFIG_WATCH_QUEUE=y", utilizzata nella maggior parte delle distribuzioni Linux.

    La vulnerabilità è stata risolta in una modifica al kernel aggiunta l'11 marzo. Puoi seguire le pubblicazioni degli aggiornamenti dei pacchetti nelle distribuzioni in queste pagine: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Il prototipo dell'exploit è già disponibile pubblicamente e consente di ottenere l'accesso root quando si esegue Ubuntu 21.10 con kernel 5.13.0-37.

    Nel kernel Linux sono state identificate vulnerabilità sfruttabili in nf_tables, watch_queue e IPsec

  • Vulnerabilità (CVE-2022-27666) nei moduli del kernel esp4 ed esp6 con l'implementazione delle trasformazioni ESP (Encapsulating Security Payload) per IPsec, utilizzate quando si utilizzano IPv4 e IPv6. La vulnerabilità consente a un utente locale con privilegi normali di sovrascrivere oggetti nella memoria del kernel e aumentare i propri privilegi sul sistema. Il problema è causato dalla mancata riconciliazione tra la dimensione della memoria allocata e i dati effettivi ricevuti, dato che la dimensione massima del messaggio potrebbe superare la dimensione massima della memoria allocata per la struttura skb_page_frag_refill.

    La vulnerabilità è stata corretta nel kernel il 7 marzo (risolta in 5.17, 5.16.15, ecc.). Puoi seguire le pubblicazioni degli aggiornamenti dei pacchetti nelle distribuzioni in 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 a Ubuntu Desktop 21.10 nella configurazione predefinita, è già stato pubblicato su GitHub. Si sostiene che con piccole modifiche l'exploit funzionerà anche su Fedora e Debian. È interessante notare che l'exploit era stato originariamente preparato per la competizione pwn2own 2022, ma gli sviluppatori del kernel hanno identificato e corretto un bug ad esso associato, quindi si è deciso di rivelare i dettagli della vulnerabilità.

  • Due vulnerabilità (CVE-2022-1015, CVE-2022-1016) nel sottosistema netfilter nel modulo nf_tables, che garantisce il funzionamento del filtro dei pacchetti nftables. Il primo problema consente a un utente locale non privilegiato di ottenere una scrittura fuori dai limiti su un buffer allocato sullo stack. Si verifica un overflow durante l'elaborazione di espressioni nftables formattate in un determinato modo e elaborate durante la fase di controllo degli indici specificati da un utente che ha accesso alle regole nftables.

    La vulnerabilità è causata dal fatto che gli sviluppatori hanno lasciato intendere che il valore di "enum nft_registers reg" fosse un singolo byte, quando quando erano abilitate determinate ottimizzazioni, il compilatore, secondo la specifica C89, poteva utilizzare per esso un valore a 32 bit . A causa di questa caratteristica, la dimensione utilizzata durante il controllo e l'allocazione della memoria non corrisponde alla dimensione effettiva dei dati nella struttura, il che porta alla sovrapposizione della coda della struttura con i puntatori sullo stack.

    Il problema può essere sfruttato per eseguire codice a livello di kernel, ma un attacco riuscito richiede l'accesso a nftables, che può essere ottenuto in uno spazio dei nomi di rete separato con diritti CLONE_NEWUSER o CLONE_NEWNET (ad esempio, se è possibile eseguire un contenitore isolato). La vulnerabilità è anche strettamente correlata alle ottimizzazioni utilizzate dal compilatore, che, ad esempio, sono abilitate durante la compilazione in modalità “CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y”. Lo sfruttamento della vulnerabilità è possibile a partire dal kernel Linux 5.12.

    La seconda vulnerabilità in netfilter è causata dall'accesso ad un'area di memoria già liberata (use-after-free) nel gestore nft_do_chain e può portare alla perdita di aree non inizializzate della memoria del kernel, che possono essere lette attraverso manipolazioni con le espressioni nftables e utilizzate, ad esempio, per determinare gli indirizzi dei puntatori durante lo sviluppo di exploit per altre vulnerabilità. Lo sfruttamento della vulnerabilità è possibile a partire dal kernel Linux 5.13.

    Le vulnerabilità vengono risolte nelle patch del kernel odierne 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. Puoi seguire le pubblicazioni degli aggiornamenti dei pacchetti nelle distribuzioni in queste pagine: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Il ricercatore che ha identificato i problemi ha annunciato la preparazione di exploit funzionanti per entrambe le vulnerabilità, che dovrebbero essere pubblicati tra pochi giorni, dopo che le distribuzioni avranno rilasciato gli aggiornamenti ai pacchetti del kernel.

Fonte: opennet.ru

Aggiungi un commento