Vulnerabilità nel kernel di Linux, che consentono di aumentare i propri privilegi tramite nf_tables e ksmbd.

In Netfilter, il sottosistema del kernel Linux utilizzato per la filtrazione e la modifica dei pacchetti di rete, è stata identificata una vulnerabilità (CVE-2024-1086) che consente a un utente locale di eseguire codice a livello di kernel e di elevare le proprie privilegi nel sistema. Il problema è causato da un doppio rilascio di memoria (double-free) nel modulo nf_tables, che gestisce il filtro dei pacchetti nftables. L ricercatore di sicurezza che ha scoperto la vulnerabilità ha sviluppato e pubblicato un prototipo funzionante dell'exploit.

Il funzionamento dell'exploit è stato dimostrato nelle versioni recenti di Debian e Ubuntu con kernel Linux 5.14 — 6.6, così come in un ambiente con kernel KernelCTF (Capture the Flag), che include patch aggiuntive per bloccare metodi tipici di funzionamento degli exploit e utilizzato da Google nel programma di ricompense per la scoperta di vulnerabilità. Il tasso di successo dell'exploit è stimato al 99,4%. Nel documento accompagnatorio viene analizzato in dettaglio il processo di creazione di un complesso exploit multi-livello e il modo in cui vengono bypassati i meccanismi di protezione e contromisure presenti nel kernel.

Vulnerabilità nel kernel di Linux, che consentono di aumentare i propri privilegi tramite nf_tables e ksmbd.

Il problema è collegato a un errore nella funzione nft_verdict_init(), che consente l'uso di valori positivi come codice di errore per l'eliminazione dei pacchetti (DROP) negli hook, il che può essere utilizzato per richiamare nella funzione nf_hook_slow() una ripetizione dell'operazione di rilascio di memoria per un buffer, per il quale la funzione free() è già stata chiamata. Il problema si verifica quando l'operazione NF_DROP viene generata erroneamente e il kernel inizialmente interpreta NF_DROP, ma poi rilascia il buffer e restituisce lo stato NF_ACCEPT. Questa situazione porta a una continuazione del trattamento del buffer associato al pacchetto, nonostante il rilascio, che viene passato a un altro gestore, il quale a sua volta richiama nuovamente la funzione di rilascio della memoria.

La vulnerabilità si manifesta a partire dalla versione del kernel Linux 3.15, ma l'exploit funziona con i kernel a partire dalla versione 5.14. La correzione della vulnerabilità è stata proposta nella release del kernel Linux 6.8-rc1 e a fine febbraio è stata trasferita nei rami stabili 5.15.149, 6.1.76 e 6.6.15. Nei distribuzioni, è possibile seguire la correzione della vulnerabilità sulle pagine: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Inoltre, si può segnalare una serie di vulnerabilità nel modulo ksmbd, che offre un'implementazione del file system integrato nel kernel Linux. server Sulla base del protocollo SMB: La vulnerabilità CVE-2024-26592 consente l'esecuzione remota del proprio codice con privilegi di kernel su sistemi con il modulo ksmbd attivato, senza passare per l'autenticazione. Il problema è causato da una condizione di competizione nel codice di gestione della connessione TCP, che si verifica a causa della mancanza di adeguate serrature durante l'elaborazione dell'oggetto.

La vulnerabilità CVE-2023-52440 consente anch'essa l'esecuzione remota del proprio codice con privilegi di kernel, ma è causata da un overflow del buffer durante l'elaborazione di chiavi di sessione non valide, a causa di una mancanza di controlli adeguati sulle dimensioni dei dati ricevuti dall'utente, prima della loro copia in un buffer di dimensioni fisse.

Le vulnerabilità (1, 2, 3) CVE-2024-26594, CVE-2023-52442 e CVE-2023-52441 in ksmbd permettono di determinare remotamente il contenuto della memoria del kernel senza autenticazione. La vulnerabilità CVE-2024-26594 è causata da un controllo dati inadeguato durante l'elaborazione dei token SMB2 Mech ricevuti, portando al ritorno di dati oltre i limiti del buffer. La vulnerabilità CVE-2023-52442 è dovuta all'assenza di controlli adeguati sugli input durante l'elaborazione di richieste concatenate (chained). La vulnerabilità CVE-2023-52441 è causata dalla mancanza della necessaria verifica degli input durante l'elaborazione delle richieste di negoziazione delle connessioni SMB2.

Le vulnerabilità CVE-2024-26594 e CVE-2024-26592 sono state risolte nel kernel 6.8 e negli aggiornamenti correttivi delle versioni stabili precedenti 6.1.75, 6.6.14, 6.7.2. Le altre vulnerabilità sono state risolte nel kernel 6.5 e negli aggiornamenti 5.15.145, 6.1.53, 6.4.16.

In conclusione, si può menzionare l'attivazione del lavoro di un nuovo team di sviluppatori del kernel Linux, creato per analizzare la presenza di vulnerabilità e valutare la relazione tra le correzioni apportate al kernel e le problematiche di sicurezza. A febbraio, gli sviluppatori del kernel hanno creato un proprio servizio CNA (CVE Numbering Authority), che ha ricevuto il potere di assegnare autonomamente identificativi CVE alle vulnerabilità. Prima di questo, l'assegnazione dei CVE e l'analisi della connessione delle correzioni con possibili vulnerabilità ricadeva sugli sviluppatori delle distribuzioni, e nel kernel le potenziali vulnerabilità non venivano evidenziate, figurando al pari delle normali correzioni. I risultati del nuovo servizio hanno superato ogni aspettativa: quotidianamente nel kernel vengono contrassegnate fino a diverse decine di nuove vulnerabilità che in passato non erano state indicate come problemi di sicurezza. Ad esempio, il 26 marzo nuovi identificativi CVE sono stati assegnati a 14 vulnerabilità che non erano state precedentemente considerate come problemi di sicurezza, e il 25 marzo a 41 vulnerabilità.

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