Vulnerability · Published Aug 11, 2023 · Assigned by GitHub_M
CVE-2023-39946Heap overflow in push_back_helper due to a CDR message
High 8.2
In plain English
A high-severity heap buffer overflow in Fast-DDS from eProsima. Proof-of-concept exploit code is public. The chance it is exploited in the next 30 days is estimated at 0.9% (higher than 60% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official description
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, heap can be overflowed by providing a PID_PROPERTY_LIST parameter that contains a CDR string with length larger than the size of actual content. In `eprosima::fastdds::dds::ParameterPropertyList_t::push_back_helper`, `memcpy` is called to first copy the octet'ized length and then to copy the data into `properties_.data`. At the second memcpy, both `data` and `size` can be controlled by anyone that sends the CDR string to the discovery multicast port. 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 & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian:12 | fastdds | 2.9.1+ds-1+deb12u1 | DEBIAN-CVE-2023-39946 |
| Debian:12 | fastdds | 2.9.1+ds-1+deb12u1 | DSA-5481-1 |
| Debian:13 | fastdds | 2.10.1+ds-3 | DEBIAN-CVE-2023-39946 |
Affected products (as reported)
Weakness: CWE-122 · Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H