In de ksmbd-module, die een ingebouwde Linux-kernelimplementatie van een bestandserver op basis van het SMB-protocol biedt, is een kwetsbaarheid (CVE-2025-37899) ontdekt die potentieel kan leiden tot het uitvoeren van eigen code op kernel-niveau door het versturen van speciaal opgemaakte pakketten. Het is opmerkelijk dat het probleem aan het licht werd gebracht tijdens een code-analyse door het AI-model OpenAI o3. Omdat de volledige code van de ksmbd-module de voor het model toegestane contextgrootte overschrijdt, vond de controle gefaseerd plaats voor de code met de implementatie van afzonderlijke SMB-opdrachten, met gebruik van typische aanvragen.
De kwetsbaarheid is veroorzaakt door een verwijzing naar al vrijgegeven geheugen (use-after-free) in de code voor het verwerken van het SMB-commando 'logoff': de structuur sess->user werd gebruikt in een andere thread wanneer een verzoek voor het opzetten van een sessie, dat aan de vrijkomende sessie was gekoppeld, binnenkwam vanuit een andere verbinding. Bij het verwerken van dergelijke verzoeken werd de functie smb2_sess_setup aangeroepen, die naar de al vrijgegeven structuur sess->user verwees.
De kwetsbaarheid is verholpen in de updates 6.15-rc5, 6.14.6, 6.12.28, 6.6.90, 6.1.138. In de tak 5.15, waaronder de ksmbd-module is opgenomen, doet het probleem zich niet voor. Het is mogelijk om de oplossing van de kwetsbaarheid in distributies te volgen op de volgende pagina's: Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Arch.
Het probleem werd ontdekt door Sean Heelan, de maker van het codeprofileringsplatform Prodfiler, dat gespecialiseerd is in optimalisatie en veiligheidsaudits van code. Sean besloot te beoordelen in hoeverre moderne AI-modellen in staat zijn tot het uitvoeren van veiligheidsaudits en concludeerde dat het model o3 aanzienlijk is gevorderd in het analyseren en begrijpen van de structuur, logica en functionaliteit van code. Het wordt opgemerkt dat het model in staat was om een redeneringsketen op te bouwen om de kwetsbaarheid te identificeren, rekening houdend met de mogelijkheid van parallelle verbindingen naar server en het gebruik van datastructuren in verschillende situaties.
Uiteindelijk bepaalde het model de probleemlocatie in de code waar het al vrijgegeven object toegankelijk bleef in een andere thread. Het model vond het probleem zelf alleen op basis van een algemene aanvraag die vroeg om te controleren op kwetsbaarheden in de code, waarbij de nadruk lag op het controleren van dangling pointers en adresseringen naar geheugen na vrijgave, waarbij valse positieven en hypothetische problemen werden uitgesloten.
Voordat hij op zoek ging naar nieuwe kwetsbaarheden, testte Sean verschillende modellen om de kwetsbaarheid CVE-2025-37778 in ksmbd te identificeren, eerder ontdekt door hem tijdens een handmatige audit en verholpen in de update van de kernel 6.15-rc3. Het model o3 voldeed met succes aan de taak en toonde een resultaat dat het dichtst bij de handmatige audit lag, waarna Sean verderging met experiments om eerder onbekende kwetsbaarheden te zoeken.
Bron: opennet.ru
