Manipulated DATA Submessage causes a heap-buffer-overflow error
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 payload_size in the DATA Submessage packet is declared as uint32_t. 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.
Problem Types
| Type | CWE ID | Description |
|---|
| CWE | CWE-122 | CWE-122: Heap-based Buffer Overflow |
Type: CWE
Description: CWE-122: Heap-based Buffer Overflow
Metrics
| Version | Base score | Base severity | Vector |
|---|
| 3.1 | 9.7 | CRITICAL | CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
Version: 3.1
Base score: 9.7
Base severity: CRITICAL
Vector: CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H