Description
AGL agl-service-can-low-level thru 17.1.12 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.
Published: 2026-05-01
Score: 7.5 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A stack buffer overflow occurs in the uds.c component of Automotive Grade Linux's agl-service-can-low-level. The send_diagnostic_request function allocates a 6-byte buffer but copies up to 7 bytes, creating a 1-4 byte overflow that overwrites adjacent stack memory. Because the payload length field is unchecked, an attacker can overwrite the return address on 32-bit ARM ECUs lacking stack canaries, enabling execution of arbitrary code.

Affected Systems

Systems running Automotive Grade Linux's agl-service-can-low-level through version 17.1.12 are affected. The flaw is present in the Unified Diagnostic Services implementation that handles diagnostic requests received over the vehicle’s CAN bus. The vulnerability is specific to 32-bit ARM automotive ECUs that do not employ stack canaries, and no patch is publicly available in the current release at the time of this analysis.

Risk and Exploitability

The CVSS score of 7.5 indicates a high severity, but no EPSS data is available and the flaw is not listed in the CISA KEV catalog. Exploitation requires the attacker to inject crafted diagnostic requests onto the vehicle’s CAN network and the target ECU must expose an unprotected UDS service on an ARM Cortex-A processor without stack protection. If these conditions are met, a return-address overwrite could lead to remote code execution with the privileges of the ECU firmware.

Generated by OpenCVE AI on May 2, 2026 at 07:58 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the agl-service-can-low-level component to a version that includes the fixed memcpy bounds check; consult the official AGL release notes for the appropriate release.
  • If an immediate update is unavailable, configure the ECU to disable or limit access to the UDS service for network segments that do not require diagnostic traffic, thereby reducing the attack surface.
  • Enable protective stack mechanisms on the platform, such as stack canaries and address space layout randomization, to mitigate the impact of any remaining or unknown buffer-overflow vulnerabilities.

Generated by OpenCVE AI on May 2, 2026 at 07:58 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 02 May 2026 08:15:00 +0000

Type Values Removed Values Added
Title Stack Buffer Overflow in agl-service-can-low-level Enables Remote Code Execution via CAN Bus on 32-bit ARM ECUs

Fri, 01 May 2026 19:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-121
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 01 May 2026 16:45:00 +0000

Type Values Removed Values Added
Description AGL agl-service-can-low-level thru 17.1.12 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

Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: mitre

Published:

Updated: 2026-05-01T18:39:04.629Z

Reserved: 2026-04-06T00:00:00.000Z

Link: CVE-2026-37530

cve-icon Vulnrichment

Updated: 2026-05-01T18:39:00.488Z

cve-icon NVD

Status : Received

Published: 2026-05-01T17:16:22.603

Modified: 2026-05-01T19:16:30.400

Link: CVE-2026-37530

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-05-02T08:00:14Z

Weaknesses