No módulo ksmbd, que oferece uma implementação de servidor de arquivos baseada no protocolo SMB embutido no núcleo Linux, foi identificada uma vulnerabilidade (CVE-2025-37899) que potencialmente permite a execução de código no nível do núcleo ao enviar pacotes especialmente formatados. É notável que o problema foi descoberto durante a análise do código por um modelo de IA da OpenAI chamado o3. Como o código completo do módulo ksmbd excede o tamanho de contexto permitido para o modelo, a verificação foi realizada em etapas, analisando a implementação de comandos SMB individuais, utilizando solicitações típicas.
A vulnerabilidade é causada pelo acesso a uma memória já liberada (use-after-free) no código que processa o comando SMB "logoff": a estrutura sess->user era utilizada em outro thread, se uma solicitação de instalação de sessão chegasse dentro de outra conexão, vinculada à sessão que estava sendo liberada. Ao processar tais solicitações, a função smb2_sess_setup era chamada, acessando a estrutura sess->user já liberada.
A vulnerabilidade foi corrigida nas atualizações 6.15-rc5, 6.14.6, 6.12.28, 6.6.90, 6.1.138. Na ramificação 5.15, que inclui o módulo ksmbd, o problema não se manifesta. É possível acompanhar a resolução da vulnerabilidade nas distribuições nas seguintes páginas: Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Arch.
O problema foi identificado por Sean Heelan, o criador da plataforma de perfilamento de código Prodfiler, especializada na otimização e auditoria de segurança de código. Sean decidiu avaliar até que ponto os modelos de IA modernos estão prontos para realizar auditorias de segurança e concluiu que o modelo o3 avançou significativamente em sua capacidade de analisar e compreender a estrutura, a lógica e a funcionalidade do código. Observa-se que, para determinar a vulnerabilidade, o modelo conseguiu construir uma cadeia de raciocínio que considerava a possibilidade de conexões paralelas e servidor o uso de estruturas de dados em várias situações.
No final, o modelo identificou o ponto problemático no código, onde o objeto liberado ainda permanecia acessível em outro thread. O modelo encontrou o problema apenas com base em uma solicitação geral, pedindo a verificação de vulnerabilidades no código, enfatizando a verificação de ponteiros pendentes e acessos à memória após sua liberação, excluindo falsos positivos e problemas hipotéticos.
Antes de procurar novas vulnerabilidades, Sean testou diferentes modelos para identificar a vulnerabilidade CVE-2025-37778 no ksmbd, que ele havia descoberto durante uma auditoria manual e que foi corrigida na atualização do kernel 6.15-rc3. O modelo o3 conseguiu realizar a tarefa com sucesso e apresentou resultados mais próximos da auditoria manual, após o que Sean se concentrou em experimentos para encontrar vulnerabilidades anteriormente desconhecidas.
Fonte: opennet.ru
