{"id":"CVE-2023-39946","aliases":["DEBIAN-CVE-2023-39946","DSA-5481-1","EUVD-2023-43644","GHSA-j297-rg6j-m7hx","UBUNTU-CVE-2023-39946","USN-6306-1"],"status":"published","title":"Heap overflow in push_back_helper due to a CDR message","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.","severity":{"version":"3.1","score":8.2,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.00889,"percentile":0.59771,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-122","CWE-787"],"published":"2023-08-11T13:37:07Z","modified":"2026-10-28T02:31:11Z","fixes":[{"ecosystem":"Debian:12","package":"fastdds","fixed_in":["2.9.1+ds-1+deb12u1"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"fastdds","fixed_in":["2.10.1+ds-3"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:22.04:LTS","package":"fastdds","fixed_in":["2.5.0+ds-3ubuntu0.1~esm1"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Debian:12","package":"fastdds","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.9.1+ds-1+deb12u1"}]}],"versions":["2.9.1+ds-1"]},{"source":"osv","ecosystem":"Debian:13","package":"fastdds","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.10.1+ds-3"}]}]},{"source":"osv","ecosystem":"Debian:11","package":"fastdds","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.0+ds-9+deb11u1"}]}],"versions":["2.1.0+ds-9"],"bundled":6},{"source":"osv","ecosystem":"Debian:12","package":"fastdds","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.9.1+ds-1+deb12u1"}]}],"versions":["2.9.1+ds-1"],"bundled":6},{"source":"osv","ecosystem":"Ubuntu:Pro:22.04:LTS","package":"fastdds","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.5.0+ds-3ubuntu0.1~esm1"}]}],"versions":["2.1.0+ds-9","2.4.1+ds-1","2.5.0+ds-3"]},{"source":"osv","ecosystem":"Ubuntu:Pro:22.04:LTS","package":"fastdds","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.5.0+ds-3ubuntu0.1~esm1"}]}],"versions":["2.1.0+ds-9","2.4.1+ds-1","2.5.0+ds-3"],"bundled":7}],"products":[{"vendor":"debian","product":"debian_linux"},{"vendor":"eprosima","product":"fast-dds"},{"vendor":"eprosima","product":"fast_dds"}],"references":[{"url":"https://github.com/eProsima/Fast-DDS/security/advisories/GHSA-j297-rg6j-m7hx","tags":["x_refsource_CONFIRM","x_transferred","Third Party Advisory","advisory","report"]},{"url":"https://github.com/eProsima/Fast-DDS/commit/349227005827e8a67a0406b823138b5068cc47dc","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","fix"]},{"url":"https://www.debian.org/security/2023/dsa-5481","tags":["x_transferred","Third Party Advisory","advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/39xxx/CVE-2023-39946.json","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-39946","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2023-39946","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2023-39946","tags":["report"]},{"url":"https://github.com/eProsima/Fast-DDS/commit/7c1c611f2f70ec238fbde30a9ed044d99191e4fb","tags":["report"]},{"url":"https://ubuntu.com/security/notices/USN-6306-1","tags":["advisory"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2023-39946","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2021-38425","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2023-39534","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2023-39945","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2023-39947","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2023-39948","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2023-39949","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2023-39946","title":"Heap overflow in push_back_helper due to a CDR message","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.","status":"published","published":"2023-08-11T13:37:07.478Z","modified":"2025-02-13T17:03:16.897Z","cvss":[{"version":"3.1","score":8.2,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H","level":"high","assessor":"cna"}],"cwes":["CWE-122"],"updated_at":"2026-11-02T14:35:33.138994Z"}],"euvd":[{"id":"EUVD-2023-43644","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.","status":"published","published":"2023-08-11T13:37:07Z","modified":"2025-02-13T17:03:16Z","cvss":[{"version":"3.1","score":8.2,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H","level":"high"}],"updated_at":"2026-11-03T00:03:49.604577Z"}],"nvd":[{"id":"CVE-2023-39946","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.","status":"published","published":"2023-08-11T14:15:13.483Z","modified":"2026-06-17T06:13:00.303Z","cvss":[{"version":"3.1","score":8.2,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H","level":"high","assessor":"secondary"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"primary"}],"cwes":["CWE-122","CWE-787"],"updated_at":"2026-11-02T14:08:22.812138Z"}],"osv":[{"id":"CVE-2023-39946","title":"Heap overflow in push_back_helper due to a CDR message","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.","status":"published","published":"2023-08-11T13:37:07.478Z","modified":"2026-10-28T02:31:11.384101934Z","cvss":[{"version":"3.1","score":8.2,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H","level":"high"}],"cwes":["CWE-122"],"updated_at":"2026-11-02T15:44:33.244128Z"},{"id":"DEBIAN-CVE-2023-39946","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.","status":"published","published":"2023-08-11T14:15:13.483Z","modified":"2026-10-26T18:02:31.456970361Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:45:39.980321Z"},{"id":"UBUNTU-CVE-2023-39946","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.","status":"published","published":"2023-08-11T14:15:00Z","modified":"2026-04-22T14:10:45.642748Z","cvss":[{"version":"3.1","score":8.2,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H","level":"high"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T16:54:22.741943Z"},{"id":"DSA-5481-1","title":"fastdds - security update","status":"published","published":"2023-08-20T00:00:00Z","modified":"2026-03-09T02:10:24.085162Z","updated_at":"2026-11-02T15:46:17.892347Z"},{"id":"USN-6306-1","title":"fastdds vulnerabilities","description":"It was discovered that Fast DDS incorrectly handled certain inputs.\nA remote attacker could possibly use this issue to cause a denial of\nservice and information exposure. This issue only affected Ubuntu\n22.04 LTS. (CVE-2021-38425)\n\nIt was discovered that Fast DDS incorrectly handled certain inputs.\nAn attacker could possibly use this issue to cause a crash.\n(CVE-2023-39534, CVE-2023-39945, CVE-2023-39946, CVE-2023-39947,\nCVE-2023-39948, CVE-2023-39949)\n","status":"published","published":"2023-08-24T17:34:36Z","modified":"2026-04-27T16:48:01.28927Z","updated_at":"2026-11-02T16:58:17.305935Z"}]}}
