Zdalna luka w module ksmbd jądra Linux, zidentyfikowana przy użyciu AI

W module ksmbd, który oferuje wbudowaną w jądro Linux implementację serwera plików opartego na protokole SMB, zidentyfikowano lukę (CVE-2025-37899), potencjalnie pozwalającą na wykonanie własnego kodu na poziomie jądra poprzez wysyłanie specjalnie sformatowanych pakietów. Co ciekawe, problem został zidentyfikowany podczas analizy kodu przez model AI OpenAI o3. Ponieważ pełny kod modułu ksmbd przekracza dopuszczalny dla modelu rozmiar kontekstu, weryfikacja była przeprowadzona etapowo dla kodu realizującego poszczególne komendy SMB, wykorzystując standardowe zapytania.

Luka jest spowodowana dostępem do już zwolnionej pamięci (use-after-free) w kodzie obsługi komendy SMB „logoff”: struktura sess->user była używana w innym wątku, jeśli w ramach innego połączenia przychodziło zapytanie o ustanowienie sesji, powiązane z zwalnianą sesją. Podczas przetwarzania takich zapytań uruchamiana była funkcja smb2_sess_setup, która odwoływała się do już zwolnionej struktury sess->user.

Luka została usunięta w aktualizacjach 6.15-rc5, 6.14.6, 6.12.28, 6.6.90, 6.1.138. W gałęzi 5.15, do której został przyjęty moduł ksmbd, problem się nie pojawia. Można śledzić usunięcie luki w dystrybucjach na następujących stronach: Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Arch.

Problem zidentyfikował Sean Heelan, twórca platformy profilowania kodu Prodfiler, specjalizujący się w optymalizacji i audycie bezpieczeństwa kodu. Sean postanowił ocenić, na ile nowoczesne modele AI są gotowe do przeprowadzania audytów bezpieczeństwa i doszedł do wniosku, że model o3 znacząco się poprawił w analizie i rozumieniu struktury, logiki i funkcjonalności kodu. Zauważono, że aby określić lukę, model był w stanie zbudować łańcuch rozumowania, biorąc pod uwagę możliwość równoległych połączeń w serwera i wykorzystanie struktur danych w różnych sytuacjach.

W rezultacie model zidentyfikował problemowe miejsce w kodzie, w którym zwolniony obiekt pozostawał dostępny w innym wątku. Jednocześnie model samodzielnie znalazł problem jedynie na podstawie ogólnego zapytania, proszącego o sprawdzenie występowania luk w kodzie, kładąc nacisk na poszukiwanie wiszących wskaźników i dostępu do pamięci po jej zwolnieniu, wykluczając przy tym fałszywe alarmy i hipotetyczne problemy.

Przed zbadaniem nowych luk, Sean przetestował różne modele pod kątem wykrywania podatności CVE-2025-37778 w ksmbd, wcześniej zidentyfikowanej przez niego podczas ręcznego audytu i usuniętej w aktualizacji jądra 6.15-rc3. Model o3 poradził sobie z zadaniem i pokazał wynik najbardziej zbliżony do ręcznego audytu, po czym Sean przeszedł do eksperymentów dotyczących wykrywania wcześniej nieznanych podatności.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster