Отдалечена уязвимост в модула ksmbd на ядрото Linux, открита с помощта на AI

В модула ksmbd, предлагащия вградена в ядрото на Linux реализация на файлов сървър на базата на протокола SMB, е открита уязвимост (CVE-2025-37899), която потенциално позволява изпълнение на произволен код на ниво ядро чрез изпращане на специално оформени пакети. Забележително е, че проблемът беше идентифициран по време на анализ на кода от AI модел на OpenAI o3. Тъй като целият код на модула ksmbd надхвърля допустимия размер на контекста за модела, проверката беше извършена на етапи за кода с реализиране на отделни команди SMB, използвайки типови заявки.

Уязвимостта е причинена от достъп до вече освободена памет (use-after-free) в кода за обработка на SMB команда „logoff”: структурата sess->user се е използвала в друг поток, ако в рамките на друго свързване е постъпил заявка за създаване на сесия, свързвана с освобождаваната сесия. При обработка на подобни заявки се е извиквала функцията smb2_sess_setup, която е имала достъп до вече освободената структура sess->user.

Уязвимостта е отстранена в обновления 6.15-rc5, 6.14.6, 6.12.28, 6.6.90, 6.1.138. В клон 5.15, в който е приет модулът ksmbd, проблемът не се проявява. Може да се проследи отстраняването на уязвимостта в дистрибуциите на следните страници: Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Arch.

Проблемът е открит от Шон Хилан (Sean Heelan), създател на платформата за профилиране на код Prodfiler, специализирана в оптимизацията и провеждането на одит на безопасността на кода. Шон е решил да оцени доколко съвременните AI модели са готови за провеждане на одит на безопасността и е заключил, че моделът o3 е напреднал значително в анализа и разбирането на структурата, логиката и функционалността на кода. Отбелязва се, че за определяне на уязвимостта моделът е успял да изгради логическа верига, отчитаща възможността за паралелни свързвания към сървъра и използването на структури от данни в различни ситуации.

В крайна сметка, моделът е определил проблемната област в кода, в която освободеният обект остава достъпен в друг поток. При това, моделът сам е открил проблема само на базата на обща заявка, която е поискала проверка на наличието на уязвимости в кода, със специален акцент върху проверката на висящи указатели и достъпа до паметта след освобождаването ѝ, изключвайки при това фалшиви срабатывания и хипотетични проблеми.

Преди да потърси нови уязвимости, Шон тествал различни модели за идентифициране на уязвимост CVE-2025-37778 в ksmbd, открита преди от него по време на ръчна проверка и отстранена в актуализация на ядрото 6.15-rc3. Моделът o3 успешно изпълни задачата и показа резултати, най-близки до ръчната проверка, след което Шон премина към експерименти за откриване на по-рано неизвестни уязвимости.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster