Luka w strongSwan IPsec umożliwiająca zdalne wykonanie kodu

strongSwan, pakiet VPN oparty na protokole IPSec, używany w systemach Linux, Android, FreeBSD i macOS, zawiera lukę (CVE-2023-41913), która może zostać wykorzystana do zdalnego wykonania kodu przez osobę atakującą. Luka wynika z błędu w procesie charon-tkm z implementacją protokołu Key Exchange (IKE) TKMv2 (Trusted Key Manager), co powoduje przepełnienie bufora podczas przetwarzania specjalnie sformatowanych wartości schematu DH (Diffie-Hellman). Luka występuje wyłącznie w systemach korzystających z wersji charon-tkm i strongSwan począwszy od wersji 5.3.0. Problem został rozwiązany w aktualizacji strongSwan 5.9.12. Aby naprawić lukę w oddziałach począwszy od wersji 5.3.x, przygotowano także łatki.

Błąd wynika z braku sprawdzenia rozmiaru publicznych wartości Diffiego-Hellmana przed skopiowaniem ich do bufora o stałym rozmiarze na stosie. Przepełnienie można zainicjować wysyłając specjalnie spreparowaną wiadomość IKE_SA_INIT, która jest przetwarzana bez uwierzytelniania. W starszych wersjach strongSwana sprawdzanie rozmiaru odbywało się w procedurze obsługi ładunku KE (Key Exchange), jednak w wersji 5.3.0 dodano zmiany, które przeniosły sprawdzanie wartości publicznych na stronę obsługi protokołu DH ( Diffiego-Hellmana) i dodano funkcje ogólne ułatwiające sprawdzanie poprawności znanych grup D.H. Przez przeoczenie zapomnieli dodać nowe funkcje sprawdzające do procesu charon-tkm, który działa jako proxy pomiędzy procesem IKE a TKM (Trusted Key Manager), w wyniku czego funkcja memcpy() zawierała niesprawdzone wartości co umożliwiło zapis do 512 10000 bajtów w XNUMX-bajtowym buforze danych.

Źródło: opennet.ru

Dodaj komentarz