Every CVE Search/ Get API key

CVE-2026-22590

Fast-DDS Discovery Server: Out-of-Bounds Read & Heap Memory Disclosure via DATA_FRAG  sampleSize / fragmentsInSubmessage

9.1 Critical

eprosima Fast DDS is a C++ implementation of the DDS (Data Distribution Service) standard of the OMG (Object Management Group). Versions prior to 2.6.12, 2.14.6, 3.2.4, 3.3.1, and 3.4.2 have a remotely triggerable Out-of-Bounds Read while processing RTPS DATA_FRAG submessages. An attacker can craft a DATA_FRAG with a large sampleSize but a small actual payload, and set fragmentsInSubmessage such that the receiver treats the packet as the LAST fragment**. In this LAST-fragment path, Fast-DDS computes incoming_length based on sampleSize and calls memcpy() without validating incoming_data.length >= incoming_length. As a result, CacheChange_t::add_fragments() reads past the received UDP datagram buffer and into adjacent heap memory, copying those bytes into the reassembly buffer. In a Discovery Server deployment, the resulting CacheChange_t can be relayed to other participants, meaning that a newly joining participant may receive leaked heap memory (e.g., pointer values that could aid ASLR bypass). Versions 2.6.12, 2.14.6, 3.2.4, 3.3.1, and 3.4.2 fix the issue.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
None
Availability
High

Exploit likelihood

0.54%Up 0.2 points since Sep 10, 2026
90%50%10%1%

What each source reports

CVE List Score used 9.1

Fast-DDS Discovery Server: Out-of-Bounds Read & Heap Memory Disclosure via DATA_FRAG  sampleSize / fragmentsInSubmessage

eprosima Fast DDS is a C++ implementation of the DDS (Data Distribution Service) standard of the OMG (Object Management Group). Versions prior to 2.6.12, 2.14.6, 3.2.4, 3.3.1, and 3.4.2 have a remotely triggerable Out-of-Bounds Read while processing RTPS DATA_FRAG submessages. An attacker can craft a DATA_FRAG with a large sampleSize but a small actual payload, and set fragmentsInSubmessage such that the receiver treats the packet as the LAST fragment**. In this LAST-fragment path, Fast-DDS computes incoming_length based on sampleSize and calls memcpy() without validating incoming_data.length >= incoming_length. As a result, CacheChange_t::add_fragments() reads past the received UDP datagram buffer and into adjacent heap memory, copying those bytes into the reassembly buffer. In a Discovery Server deployment, the resulting CacheChange_t can be relayed to other participants, meaning that a newly joining participant may receive leaked heap memory (e.g., pointer values that could aid ASLR bypass). Versions 2.6.12, 2.14.6, 3.2.4, 3.3.1, and 3.4.2 fix the issue.

Record
CVE-2026-22590
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
Weakness
CWE-125, CWE-131
Updated
2026-11-02
EUVDEUVD-2026-75058 9.1

eprosima Fast DDS is a C++ implementation of the DDS (Data Distribution Service) standard of the OMG (Object Management Group). Versions prior to 2.6.12, 2.14.6, 3.2.4, 3.3.1, and 3.4.2 have a remotely triggerable Out-of-Bounds Read while processing RTPS DATA_FRAG submessages. An attacker can craft a DATA_FRAG with a large sampleSize but a small actual payload, and set fragmentsInSubmessage such that the receiver treats the packet as the LAST fragment**. In this LAST-fragment path, Fast-DDS computes incoming_length based on sampleSize and calls memcpy() without validating incoming_data.length >= incoming_length. As a result, CacheChange_t::add_fragments() reads past the received UDP datagram buffer and into adjacent heap memory, copying those bytes into the reassembly buffer. In a Discovery Server deployment, the resulting CacheChange_t can be relayed to other participants, meaning that a newly joining participant may receive leaked heap memory (e.g., pointer values that could aid ASLR bypass). Versions 2.6.12, 2.14.6, 3.2.4, 3.3.1, and 3.4.2 fix the issue.

Record
EUVD-2026-75058
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
Updated
2026-11-02
NVD 9.1

eprosima Fast DDS is a C++ implementation of the DDS (Data Distribution Service) standard of the OMG (Object Management Group). Versions prior to 2.6.12, 2.14.6, 3.2.4, 3.3.1, and 3.4.2 have a remotely triggerable Out-of-Bounds Read while processing RTPS DATA_FRAG submessages. An attacker can craft a DATA_FRAG with a large sampleSize but a small actual payload, and set fragmentsInSubmessage such that the receiver treats the packet as the LAST fragment**. In this LAST-fragment path, Fast-DDS computes incoming_length based on sampleSize and calls memcpy() without validating incoming_data.length >= incoming_length. As a result, CacheChange_t::add_fragments() reads past the received UDP datagram buffer and into adjacent heap memory, copying those bytes into the reassembly buffer. In a Discovery Server deployment, the resulting CacheChange_t can be relayed to other participants, meaning that a newly joining participant may receive leaked heap memory (e.g., pointer values that could aid ASLR bypass). Versions 2.6.12, 2.14.6, 3.2.4, 3.3.1, and 3.4.2 fix the issue.

Record
CVE-2026-22590
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
Weakness
CWE-125, CWE-131
Updated
2026-11-02
OSV 9.1

Fast-DDS Discovery Server: Out-of-Bounds Read & Heap Memory Disclosure via DATA_FRAG  sampleSize / fragmentsInSubmessage

eprosima Fast DDS is a C++ implementation of the DDS (Data Distribution Service) standard of the OMG (Object Management Group). Versions prior to 2.6.12, 2.14.6, 3.2.4, 3.3.1, and 3.4.2 have a remotely triggerable Out-of-Bounds Read while processing RTPS DATA_FRAG submessages. An attacker can craft a DATA_FRAG with a large sampleSize but a small actual payload, and set fragmentsInSubmessage such that the receiver treats the packet as the LAST fragment**. In this LAST-fragment path, Fast-DDS computes incoming_length based on sampleSize and calls memcpy() without validating incoming_data.length >= incoming_length. As a result, CacheChange_t::add_fragments() reads past the received UDP datagram buffer and into adjacent heap memory, copying those bytes into the reassembly buffer. In a Discovery Server deployment, the resulting CacheChange_t can be relayed to other participants, meaning that a newly joining participant may receive leaked heap memory (e.g., pointer values that could aid ASLR bypass). Versions 2.6.12, 2.14.6, 3.2.4, 3.3.1, and 3.4.2 fix the issue.

Record
CVE-2026-22590
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
Weakness
CWE-125, CWE-131
Updated
2026-11-02
OSVDEBIAN-CVE-2026-22590 9.1

eprosima Fast DDS is a C++ implementation of the DDS (Data Distribution Service) standard of the OMG (Object Management Group). Versions prior to 2.6.12, 2.14.6, 3.2.4, 3.3.1, and 3.4.2 have a remotely triggerable Out-of-Bounds Read while processing RTPS DATA_FRAG submessages. An attacker can craft a DATA_FRAG with a large sampleSize but a small actual payload, and set fragmentsInSubmessage such that the receiver treats the packet as the LAST fragment**. In this LAST-fragment path, Fast-DDS computes incoming_length based on sampleSize and calls memcpy() without validating incoming_data.length >= incoming_length. As a result, CacheChange_t::add_fragments() reads past the received UDP datagram buffer and into adjacent heap memory, copying those bytes into the reassembly buffer. In a Discovery Server deployment, the resulting CacheChange_t can be relayed to other participants, meaning that a newly joining participant may receive leaked heap memory (e.g., pointer values that could aid ASLR bypass). Versions 2.6.12, 2.14.6, 3.2.4, 3.3.1, and 3.4.2 fix the issue.

Record
DEBIAN-CVE-2026-22590
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2026-22590 9.1

eprosima Fast DDS is a C++ implementation of the DDS (Data Distribution Service) standard of the OMG (Object Management Group). Versions prior to 2.6.12, 2.14.6, 3.2.4, 3.3.1, and 3.4.2 have a remotely triggerable Out-of-Bounds Read while processing RTPS DATA_FRAG submessages. An attacker can craft a DATA_FRAG with a large sampleSize but a small actual payload, and set fragmentsInSubmessage such that the receiver treats the packet as the LAST fragment**. In this LAST-fragment path, Fast-DDS computes incoming_length based on sampleSize and calls memcpy() without validating incoming_data.length >= incoming_length. As a result, CacheChange_t::add_fragments() reads past the received UDP datagram buffer and into adjacent heap memory, copying those bytes into the reassembly buffer. In a Discovery Server deployment, the resulting CacheChange_t can be relayed to other participants, meaning that a newly joining participant may receive leaked heap memory (e.g., pointer values that could aid ASLR bypass). Versions 2.6.12, 2.14.6, 3.2.4, 3.3.1, and 3.4.2 fix the issue.

Record
UBUNTU-CVE-2026-22590
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
fastdds
Debian:12
All versions, plus listed versions
2.10.1+ds-12.10.1+ds-22.10.1+ds-32.11.2+ds-12.11.2+ds-2
Show 27 moreShow less
2.11.2+ds-32.11.2+ds-42.11.2+ds-52.11.2+ds-62.11.2+ds-6.12.11.2+ds-6.1~exp12.14.0+ds-12.14.0+ds-22.14.0+ds-32.14.0+ds-42.14.1+ds-12.14.2+ds-12.14.3+ds-12.9.1+ds-12.9.1+ds-1+deb12u12.9.1+ds-1+deb12u23.0.0+ds-13.0.0+ds-23.0.0+ds-33.0.1+ds-13.1.0+ds-13.1.0+ds-23.1.2+ds-13.3.0+ds-13.3.0+ds-23.3.0+ds-33.6.1+ds-1
None known
fastdds
Debian:13
All versions, plus listed versions
3.1.2+ds-13.3.0+ds-13.3.0+ds-23.3.0+ds-33.6.1+ds-1
None known
fastdds
Ubuntu:Pro:22.04:LTS
All versions, plus listed versions
2.1.0+ds-92.4.1+ds-12.5.0+ds-32.5.0+ds-3ubuntu0.1~esm1
None known
fastdds
Ubuntu:24.04:LTS
All versions, plus listed versions
2.10.1+ds-32.11.2+ds-62.11.2+ds-6ubuntu12.11.2+ds-6.1build22.11.2+ds-6.1build3
None known
fastdds
Ubuntu:26.10
All versions, plus listed versions
3.3.0+ds-3ubuntu13.3.0+ds-3ubuntu3
None known
fastdds
Ubuntu:26.04:LTS
All versions, plus listed versions
3.1.2+ds-1build13.3.0+ds-3ubuntu1
None known

History

History
RecordedChangedSources
first indexedCVE List, EUVD, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-22590 is a critical vulnerability (CVSS 9.1) in Eprosima Fast-dds, published September 9, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.54%, the 45th percentile. No source names a fixed version.

References

MoveEnter Open