eprosima Fast DDS is a C++ implementation of the Data Distribution Service standard of the Object Management Group. Prior to versions 2.14.0, 2.13.4, 2.12.3, 2.10.4, and 2.6.8, manipulated DATA Submessage can cause a heap overflow error in the Fast-DDS process, causing the process to be terminated remotely. Additionally, the payloadsize in the DATA Submessage packet is declared as uint32t. When a negative number, such as -1, is input into this variable, it results in an Integer Overflow (for example, -1 gets converted to 0xFFFFFFFF). This eventually leads to a heap-buffer-overflow, causing the program to terminate. Versions 2.14.0, 2.13.4, 2.12.3, 2.10.4, and 2.6.8 contain a fix for this issue.
{
"cwe_ids": [
"CWE-122"
]
}{
"versions": [
{
"introduced": "0"
},
{
"fixed": "2.6.8"
}
]
}{
"versions": [
{
"introduced": "2.7.0"
},
{
"fixed": "2.10.4"
}
]
}[
{
"signature_type": "Line",
"target": {
"file": "src/cpp/rtps/participant/RTPSParticipantImpl.cpp"
},
"id": "CVE-2024-28231-725a5a7b",
"source": "https://github.com/eprosima/fast-dds/commit/3118cba80c7b0db2c9bd0ede8671e3d31785cbda",
"digest": {
"threshold": 0.9,
"line_hashes": [
"262956306831166481237303932868870361372",
"306604317174497932475465898607727697833",
"196513365605387483283372719964676140728",
"294552922959227129118208678759959282933",
"233002817893507405036982977419080917531",
"137118083659526854717517586406070424281"
]
},
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Function",
"target": {
"function": "RTPSParticipantImpl::update_attributes",
"file": "src/cpp/rtps/participant/RTPSParticipantImpl.cpp"
},
"id": "CVE-2024-28231-ecb73c2a",
"source": "https://github.com/eprosima/fast-dds/commit/3118cba80c7b0db2c9bd0ede8671e3d31785cbda",
"digest": {
"function_hash": "324427933685653720667523570866654147901",
"length": 6264.0
},
"deprecated": false,
"signature_version": "v1"
}
]