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.
When an attacker sends a malformed DATA_FRAG submessage, the `ch` object containing `Inline_qos` and `SerializedPayload` elements attempts to free memory that was not previously initialized. This results in a bad-free error (CWE-416: use-after-free), which causes immediate, emergency termination of the Fast DDS process. The attack can be carried out from the local network (AV:A vector) without requiring authentication and user interaction.
An attacker can remotely and immediately terminate the Fast DDS process, causing complete loss of service availability. The potential scope of the attack also includes data integrity and confidentiality (CVSS I:H, C:H), which may result from further exploitation of unstable memory state.
eProsima Fast DDS should be updated to version 2.13.0, 2.12.2, 2.11.3, 2.10.2, or 2.6.7, which contain a patch eliminating the described vulnerability. Details are available in the vendor's security advisory on GitHub: GHSA-5m2f-hvj2-cx2h.
eProsima Fast DDS in versions prior to 2.13.0, 2.12.2, 2.11.3, 2.10.3, and 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 (excl.)2.11.0 – 2.11.3 (excl.)2.12.0 – 2.12.2 (excl.)
Related vulnerabilities
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...