Podatność use-after-free (bad-free) w bibliotece eProsima Fast DDS pozwala zdalnemu atakującemu na wymuszenie przedwczesnego zakończenia procesu poprzez wysłanie spreparowanego pakietu DATA_FRAG. Błąd dotyczy krytycznej infrastruktury komunikacyjnej opartej na standardzie DDS i może prowadzić do całkowitej utraty dostępności usługi.
▸ Pokaż oryginał (EN)
eProsima Fast DDS (formerly Fast RTPS) is a C++ implementation of the Data Distribution Service standard of the Object Management Group. Prior to versions 2.13.0, 2.12.2, 2.11.3, 2.10.3, and 2.6.7, an invalid DATA_FRAG Submessage causes a bad-free error, and the Fast-DDS process can be remotely terminated. If an invalid Data_Frag packet is sent, the `Inline_qos, SerializedPayload` member of object `ch` will attempt to release memory without initialization, resulting in a 'bad-free' error. Versions 2.13.0, 2.12.2, 2.11.3, 2.10.2, and 2.6.7 fix this issue.
Gdy atakujący wysyła nieprawidłowy submessage typu DATA_FRAG, obiekt `ch` zawierający elementy `Inline_qos` oraz `SerializedPayload` próbuje zwolnić pamięć, która nie została wcześniej zainicjalizowana. Skutkuje to błędem typu bad-free (CWE-416: use-after-free), który powoduje natychmiastowe, awaryjne zakończenie procesu Fast DDS. Atak jest możliwy do przeprowadzenia z sieci lokalnej (wektor AV:A) bez konieczności uwierzytelniania i interakcji ze strony użytkownika.
Atakujący może zdalnie i natychmiastowo zakończyć proces Fast DDS, powodując całkowitą utratę dostępności usługi. Potencjalny zasięg ataku obejmuje również integralność i poufność danych (CVSS I:H, C:H), co może wynikać z dalszego wykorzystania niestabilnego stanu pamięci.
Należy zaktualizować eProsima Fast DDS do wersji 2.13.0, 2.12.2, 2.11.3, 2.10.2 lub 2.6.7, które zawierają poprawkę eliminującą opisaną podatność. Szczegóły dostępne w security advisory producenta na GitHub: GHSA-5m2f-hvj2-cx2h.
eProsima Fast DDS w wersjach wcześniejszych niż 2.13.0, 2.12.2, 2.11.3, 2.10.3 oraz 2.6.7
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:HEprosima Fast Dds
APPEprosima< 2.6.72.10.0 – 2.10.3 (bez)2.11.0 – 2.11.3 (bez)2.12.0 – 2.12.2 (bez)
Powiązane podatności
eProsima Fast-DDS: błędna walidacja odwołania certyfikatów/tokenów
Heap buffer overflow w eprosima Fast DDS via manipulowany DATA Submessage
eProsima Fast DDS — podatność rozłączenia subskrybentów RTPS w SROS2
eprosima Fast DDS is a C++ implementation of the DDS (Data Distribution Service) standard of the OMG (Object M...
eprosima Fast DDS is a C++ implementation of the DDS (Data Distribution Service) standard of the OMG (Object M...