CVE-2025-62603

Severity CVSS v4.0:
LOW
Type:
CWE-125 Out-of-bounds Read
Publication date:
03/02/2026
Last modified:
03/02/2026

Description

Fast DDS is a C++ implementation of the DDS (Data Distribution Service) standard of the OMG (Object Management Group<br /> ). ParticipantGenericMessage is the DDS Security control-message container that carries not only the handshake but also on<br /> going security-control traffic after the handshake, such as crypto-token exchange, rekeying, re-authentication, and token <br /> delivery for newly appearing endpoints. On receive, the CDR parser is invoked first and deserializes the `message_data` (i<br /> .e., the `DataHolderSeq`) via the `readParticipantGenericMessage → readDataHolderSeq` path. The `DataHolderSeq` is parsed <br /> sequentially: a sequence count (`uint32`), and for each DataHolder the `class_id` string (e.g. `DDS:Auth:PKI-DH:1.0+Req`),<br /> string properties (a sequence of key/value pairs), and binary properties (a name plus an octet-vector). The parser operat<br /> es at a stateless level and does not know higher-layer state (for example, whether the handshake has already completed), s<br /> o it fully unfolds the structure before distinguishing legitimate from malformed traffic. Because RTPS permits duplicates,<br /> delays, and retransmissions, a receiver must perform at least minimal structural parsing to check identity and sequence n<br /> umbers before discarding or processing a message; the current implementation, however, does not "peek" only at a minimal<br /> header and instead parses the entire `DataHolderSeq`. As a result, prior to versions 3.4.1, 3.3.1, and 2.6.11, this parsi<br /> ng behavior can trigger an out-of-memory condition and remotely terminate the process. Versions 3.4.1, 3.3.1, and 2.6.11 p<br /> atch the issue.