Luka w zabezpieczeniach StrongSwan IPsec umożliwiająca zdalne wykonanie kodu

Już dostępny strongSwan 5.9.10, darmowy pakiet do tworzenia połączeń VPN w oparciu o protokół IPSec używany w systemach Linux, Android, FreeBSD i macOS. Nowa wersja eliminuje niebezpieczną lukę (CVE-2023-26463), która może zostać wykorzystana do ominięcia uwierzytelnienia, ale potencjalnie może również doprowadzić do wykonania kodu atakującego po stronie serwera lub klienta. Problem występuje podczas sprawdzania poprawności specjalnie zaprojektowanych certyfikatów w metodach uwierzytelniania EAP (Extensible Authentication Protocol) opartych na TLS.

Luka wynika z tego, że moduł obsługi TLS błędnie akceptuje klucze publiczne z certyfikatu partnera, uznając je za godne zaufania, nawet jeśli certyfikatu nie można pomyślnie zweryfikować. W szczególności podczas wywoływania funkcji tls_find_public_key() wybór oparty na typie klucza publicznego służy do określenia, które certyfikaty są godne zaufania. Problem polega na tym, że zmienna używana do określenia typu klucza dla operacji wyszukiwania jest i tak ustawiona, nawet jeśli certyfikat nie jest godny zaufania.

Ponadto manipulując kluczem można zmniejszyć licznik referencji (jeśli certyfikat nie jest godny zaufania, referencja do obiektu zostaje zwolniona po ustaleniu typu klucza) i zwolnić pamięć dla wciąż używanego obiektu kluczem. Ta wada nie wyklucza tworzenia exploitów mających na celu wyciek informacji z pamięci i wykonanie niestandardowego kodu.

Atak na serwer odbywa się poprzez przesłanie przez klienta certyfikatu z podpisem własnym w celu uwierzytelnienia klienta przy użyciu metod EAP-TLS, EAP-TTLS, EAP-PEAP i EAP-TNC. Atak na klienta może zostać przeprowadzony poprzez zwrócenie przez serwer specjalnie zaprojektowanego certyfikatu. Luka pojawia się w wersji strongSwan 5.9.8 i 5.9.9. Publikację aktualizacji pakietów w dystrybucjach można śledzić na stronach: Debian, Ubuntu, Gentoo, RHEL, SUSE, Arch, FreeBSD, NetBSD.

Źródło: opennet.ru

Dodaj komentarz