Nel modulo ksmbd, che offre un'implementazione del server file basata sul protocollo SMB integrata nel kernel Linux, è stata individuata una vulnerabilità (CVE-2025-37899) che potrebbe consentire l'esecuzione di codice a livello di kernel attraverso l'invio di pacchetti appositamente formati. È interessante notare che il problema è stato rilevato durante l'analisi del codice da parte di un modello AI di OpenAI, o3. Poiché il codice completo del modulo ksmbd supera la dimensione del contesto consentita per il modello, il controllo è stato eseguito in più fasi sul codice che implementa singoli comandi SMB, utilizzando richieste tipo.
La vulnerabilità è causata dall'accesso a una memoria già liberata (use-after-free) nel codice di gestione del comando SMB "logoff": la struttura sess->user veniva utilizzata in un altro thread, se una richiesta di avvio di sessione veniva ricevuta da un'altra connessione, legata alla sessione liberata. Durante l'elaborazione di tali richieste veniva avviata la funzione smb2_sess_setup, che accedeva già alla struttura sess->user liberata.
La vulnerabilità è stata risolta negli aggiornamenti 6.15-rc5, 6.14.6, 6.12.28, 6.6.90, 6.1.138. Nella serie 5.15, che include il modulo ksmbd, il problema non si manifesta. È possibile monitorare la risoluzione della vulnerabilità nelle distribuzioni sulle seguenti pagine: Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Arch.
Il problema è stato identificato da Sean Heelan, creatore della piattaforma di profiling del codice Prodfiler, specializzato in ottimizzazione e audit della sicurezza del codice. Sean ha deciso di valutare quanto siano pronte le moderne AI per condurre audit di sicurezza e ha concluso che il modello o3 ha fatto notevoli progressi nell'analisi e nella comprensione della struttura, logica e funzionalità del codice. È stato osservato che per identificare le vulnerabilità, il modello è riuscito a costruire una catena di ragionamento che considera la possibilità di connessioni parallele e l'uso di strutture dati in diverse situazioni. server e l'utilizzo di strutture dati in diverse situazioni.
Alla fine, il modello ha identificato il punto problematico nel codice, in cui l'oggetto liberato rimaneva disponibile in un altro thread. In questo caso, il modello ha trovato il problema da solo, basandosi su una richiesta generica che chiedeva di verificare la presenza di vulnerabilità nel codice, focalizzandosi sul controllo dei puntatori sospesi e degli accessi alla memoria dopo la sua liberazione, escludendo nel contempo i falsi positivi e i problemi ipotetici.
Prima di cercare nuove vulnerabilità, Sean ha testato diversi modelli per l'identificazione della vulnerabilità CVE-2025-37778 in ksmbd, precedentemente rilevata da lui durante un audit manuale e risolta nell'aggiornamento del kernel 6.15-rc3. Il modello o3 ha affrontato con successo il compito e ha mostrato un risultato molto vicino a quello dell'audit manuale, dopo di che Sean si è dedicato agli esperimenti per cercare vulnerabilità precedentemente sconosciute.
Fonte: opennet.ru
