CVE-2023-39946

NameCVE-2023-39946
Descriptioneprosima 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.
SourceCVE (at NVD; CERT, LWN, oss-sec, fulldisc, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more)
ReferencesDSA-5481-1
Debian Bugs1043548

Vulnerable and fixed packages

The table below lists information on source packages.

Source PackageReleaseVersionStatus
fastdds (PTS)bullseye (security), bullseye2.1.0+ds-9+deb11u1fixed
bookworm, bookworm (security)2.9.1+ds-1+deb12u2fixed
sid, trixie3.1.0+ds-2fixed

The information below is based on the following data on fixed versions.

PackageTypeReleaseFixed VersionUrgencyOriginDebian Bugs
fastddssourcebullseye2.1.0+ds-9+deb11u1DSA-5481-1
fastddssourcebookworm2.9.1+ds-1+deb12u1DSA-5481-1
fastddssource(unstable)2.10.1+ds-31043548

Notes

https://github.com/eProsima/Fast-DDS/security/advisories/GHSA-j297-rg6j-m7hx
https://github.com/eProsima/Fast-DDS/commit/7c1c611f2f70ec238fbde30a9ed044d99191e4fb (v2.11.1)
https://github.com/eProsima/Fast-DDS/pull/3670

Search for package or bug name: Reporting problems