CVE-2023-39947
High · 7.5CVSS
7.5
EPSS
1.0%
Published
Aug 11, 2023
CISA due date
—
Cloudanix analysis
A flaw in widely used communication software lets remote attackers crash systems that exchange data in real time by sending specially formatted network messages.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Malformed PID_PROPERTY_LIST parameters in RTPS messages trigger a heap overflow at a secondary program counter, resulting in remote denial of service via process crash.
Why it matters to the business
Remote attackers can crash any Fast DDS instance, disrupting real-time publish-subscribe data flows in robotics, autonomous systems, and industrial control environments; the issue has been public for over three years with no observed exploitation.
How an attack unfolds
An attacker crafts a network packet containing an invalid PID_PROPERTY_LIST parameter and sends it to a listening Fast DDS participant; the library parses the malformed list, overflows a heap buffer, and terminates the process.
How to fix it
Upgrade eprosima/fast-dds to version 2.11.1, 2.10.2, 2.9.2, or 2.6.6 (commit cffaa679ec8cd9c84b4d5b3fe1e3c22974d63be0 or later).
How to confirm the fix worked
Confirm the running binary or library reports one of the patched versions; replay a test vector containing the malformed PID_PROPERTY_LIST against a non-production instance and verify it no longer crashes.
Typical attack path
- Locate exposed Fast DDS endpoints via network discovery
- Transmit a single RTPS message containing a crafted PID_PROPERTY_LIST
- Trigger heap overflow during parameter processing
- Cause immediate process termination
How to detect it
Review process crash dumps and application logs for heap-related faults during RTPS message handling; inspect network captures for RTPS packets with unusual PID_PROPERTY_LIST lengths or contents.
What your security team should do
- Immediately upgrade all Fast DDS deployments to a patched release
- Restrict inbound RTPS traffic to trusted sources until upgrades are complete
- Monitor application logs and process health for unexpected terminations
- Add network-level filtering for anomalous RTPS parameter lengths if upgrades are delayed
The record
eprosima Fast DDS is a C++ implementation of the Data Distribution Service standard of the Object Management Group. Prior to versions 2.11.1, 2.10.2, 2.9.2, and 2.6.6, even after the fix at commit 3492270, malformed `PID_PROPERTY_LIST` parameters cause heap overflow at a different program counter. This can remotely crash any Fast-DDS process. Versions 2.11.1, 2.10.2, 2.9.2, and 2.6.6 contain a patch for this issue.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | fastdds | 0 | 2.1.0+ds-9+deb11u1 |
| Debian:12 | fastdds | 0 | 2.9.1+ds-1+deb12u1 |
| Debian:13 | fastdds | 0 | 2.10.1+ds-3 |
| Ubuntu:22.04:LTS | fastdds | 0 | No fix |
| Ubuntu:24.04:LTS | fastdds | 0 | 2.10.1+ds-3 |
| Ubuntu:Pro:22.04:LTS | fastdds | 0 | 2.5.0+ds-3ubuntu0.1~esm1 |
Related vulnerabilities
- CVE-2024-30259 FastDDS is a C++ implementation of the DDS (Data Distribution Service) standard of the… Also affects fastdds
- CVE-2024-30916 An issue was discovered in eProsima FastDDS v.2.14.0 and before, allows a local attacker… Also affects fastdds
- CVE-2024-30917 An issue was discovered in eProsima FastDDS v.2.14.0 and before, allows a local attacker… Also affects fastdds
- CVE-2024-26369 An issue in the HistoryQosPolicy component of FastDDS v2.12.x, v2.11.x, v2.10.x, and… Also affects fastdds
- CVE-2023-50716 eProsima Fast DDS (formerly Fast RTPS) is a C++ implementation of the Data Distribution… Also affects fastdds
- CVE-2023-39946 eprosima Fast DDS is a C++ implementation of the Data Distribution Service standard of… Also affects fastdds
- CVE-2026-111497 A buffer overflow vulnerability in the Brotli decoder (c/dec/decode.c) in Google Brotli… CWE-787
- CVE-2026-112397 Pillow is a Python imaging library. CWE-787