Stack Buffer Overflow in AGL agl-service-can-low-level UDS Library Enables Remote Code Execution on 32-bit Automotive ECUs
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| n/a | n/a | affected |
|
No data.
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Automotivelinux | Agl-service-can-low-level |
|
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.314% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Automotivelinux
Automotivelinux agl-service-can-low-level |
|
| Vendors & Products |
Automotivelinux
Automotivelinux agl-service-can-low-level |
| Type | Values Removed | Values Added |
|---|---|---|
| Title | Stack Buffer Overflow in AGL agl-service-can-low-level UDS Library Enables Remote Code Execution on 32-bit Automotive ECUs |
| Type | Values Removed | Values Added |
|---|---|---|
| Weaknesses | CWE-121 | |
| Metrics |
cvssV3_1
|
| Type | Values Removed | Values Added |
|---|---|---|
| Description | AGL agl-service-can-low-level contains a stack buffer overflow in the uds-c library. The send_diagnostic_request function in uds.c allocates a 6-byte stack buffer (MAX_DIAGNOSTIC_PAYLOAD_SIZE=6) but copies up to 7 bytes (MAX_UDS_REQUEST_PAYLOAD_LENGTH=7) via memcpy at an offset of 1+pid_length (2-3 bytes), resulting in 1-4 bytes of controlled stack overflow. The payload_length field (uint8_t) has no bounds check against the destination buffer. On 32-bit ARM automotive ECUs without stack canaries, this can lead to return address overwrite and RCE. | |
| References |
|