В модула ksmbd, предоставящ модул за файлов сървър на базата на протокола SMB, интегриран в ядрото на Linux, е открита уязвимост (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
