Podatność w Suricata 4.1.4 umożliwia atakującemu zdalne wywołanie odczytu poza przydzielonym obszarem pamięci (out-of-bounds read) poprzez wysłanie specjalnie spreparowanych pakietów IPv4 z niepoprawnymi opcjami. Ze względu na krytyczny poziom CVSS 9.8 i sieciowy wektor ataku bez wymagania uwierzytelnienia, stanowi poważne zagrożenie dla systemów IDS opartych na Suricata.
▸ Pokaż oryginał (EN)
An issue was discovered in Suricata 4.1.4. By sending multiple IPv4 packets that have invalid IPv4Options, the function IPV4OptValidateTimestamp in decode-ipv4.c tries to access a memory region that is not allocated. There is a check for o->len < 5 (corresponding to 2 bytes of header and 3 bytes of data). Then, "flag = *(o->data + 3)" places one beyond the 3 bytes, because the code should have been "flag = *(o->data + 1)" instead.
Błąd znajduje się w funkcji IPV4OptValidateTimestamp w pliku decode-ipv4.c. Kod sprawdza, czy długość opcji (o->len) jest mniejsza niż 5 (2 bajty nagłówka + 3 bajty danych), jednak następnie próbuje odczytać flagę spod adresu o->data + 3, co wykracza poza dozwolony zakres 3 bajtów danych (indeksy 0–2). Prawidłowy indeks powinien wynosić 1, a nie 3. Wysłanie wielu pakietów IPv4 z nieprawidłowymi opcjami IPv4 pozwala wyzwolić ten błąd, skutkując dostępem do niezaalokowanego obszaru pamięci (CWE-125: out-of-bounds read).
Atakujący może doprowadzić do odczytu danych spoza przydzielonego bufora, co może skutkować ujawnieniem zawartości pamięci procesu lub destabilizacją działania systemu IDS (crash). W skrajnych przypadkach podatność może umożliwić dalszą eksploatację w celu obejścia mechanizmów detekcji Suricata.
Należy zaktualizować Suricata do wersji 4.1.5 lub nowszej, wydanej 24 września 2019 r., która zawiera poprawkę błędu w funkcji IPV4OptValidateTimestamp. Szczegóły dostępne pod adresem: https://suricata-ids.org/2019/09/24/suricata-4-1-5-released/
Suricata w wersji 4.1.4
Podatność została odkryta i zgłoszona przez badaczy z Code Intelligence (code-intelligence.com). Poprawka została opublikowana w dniu publikacji CVE (2019-09-24) wraz z wydaniem Suricata 4.1.5.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HSuricata Ids Suricata
APPSuricata-Ids4.1.4
Powiązane podatności
Suricata: out-of-bounds read przy składaniu fragmentów IPv4 (defrag.c)
Out-of-bounds read w parserze SSLv3/TLS 1.2 w Suricata 4.1.4
Suricata: heap-based buffer over-read w parserze banerów SSH
An issue was discovered in Suricata 4.1.3. The function process_reply_record_v3 lacks a check for the length o...
An issue was discovered in Suricata 4.1.3. If the function filetracker_newchunk encounters an unsafe "Some(sfc...