Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
Lifecycle Timeline
5DescriptionCVE.org
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.
AnalysisAI
Stack buffer overflow in AGL agl-service-can-low-level's uds-c library enables remote code execution on vulnerable automotive ECUs. The send_diagnostic_request function copies up to 7 bytes into a 6-byte stack buffer without bounds checking, allowing 1-4 bytes of controlled stack corruption. On 32-bit ARM ECUs without stack canaries (common in automotive deployments), attackers can overwrite return addresses to achieve arbitrary code execution. CVSS 7.5 with network attack vector and no authentication required indicates critical exposure, though CVSS impact vector (C:N/I:N/A:H) appears inconsistent with RCE capability described - vendor assessment may undervalue confidentiality/integrity impact of code execution.
Technical ContextAI
The vulnerability resides in the Unified Diagnostic Services (UDS) implementation within agl-service-can-low-level, a CAN bus diagnostic service component of Automotive Grade Linux. UDS is an ISO 14229 protocol for automotive diagnostics over CAN networks. The flaw is a classic CWE-121 stack-based buffer overflow: send_diagnostic_request() in uds.c defines MAX_DIAGNOSTIC_PAYLOAD_SIZE as 6 bytes but attempts to copy MAX_UDS_REQUEST_PAYLOAD_LENGTH (7 bytes) via memcpy at offset 1+pid_length (2-3 bytes total offset). With an unchecked uint8_t payload_length field, an attacker can trigger memcpy to write beyond the 6-byte boundary. The CPE string is generic (n/a:n/a), indicating affected product enumeration is incomplete. Automotive ECUs typically run on 32-bit ARM without modern exploit mitigations like stack canaries or ASLR, making return-oriented programming and direct return address overwrite trivial.
RemediationAI
Apply vendor security patch when released by Automotive Grade Linux project - monitor https://gerrit.automotivelinux.org/gerrit/apps/agl-service-can-low-level for commits addressing CVE-2026-42485. Technical analysis at https://gist.github.com/sgInnora/8526eedcfd826d05ef1fc45d8f405643 may contain additional mitigation guidance. Until patched version is available, implement network-level isolation: restrict CAN bus diagnostic service access to authenticated service networks only, disable external telematics routing to UDS endpoints, and block OBD-II port network bridging in production vehicles. For ECU deployments, recompile agl-service-can-low-level with stack canaries enabled (-fstack-protector-strong) and position-independent code to provide exploit mitigation layers, though this requires build environment access and may impact real-time performance constraints. Input validation workaround: if source modification is feasible, add explicit bounds check before memcpy to ensure payload_length + 1 + pid_length does not exceed MAX_DIAGNOSTIC_PAYLOAD_SIZE (6 bytes). Network segmentation is the most practical immediate control for operational vehicle fleets.
LibreNMS before 24.10.0 allows a remote attacker to execute arbitrary code via OS command injection involving AboutContr
Reachable assertion in Open5GS up to version 2.7.6 allows remote unauthenticated attackers to crash the Diameter CER han
A Command Injection issue in the payload build page in BYOB (Build Your Own Botnet) 2.0 allows attackers to execute arbi
Denial of service in Open5GS 2.7.6 and earlier allows network-adjacent attackers with low-privilege Diameter Gx peer acc
Denial of service in Open5GS HSS (Home Subscriber Server) versions 2.7.0 through 2.7.6 is triggered remotely by manipula
Remote command injection in Control Web Panel allows unauthenticated attackers to execute arbitrary OS commands as root
LINQPad before 5.52.01 Pro edition is vulnerable to Unsafe Deserialization in LINQPad.AutoRefManager::PopulateFromCache(
Remote code execution in dash-uploader (Python package for Plotly Dash) versions 0.1.0 through 0.7.0a2 allows unauthenti
Command injection in LiteLLM 1.18.10 lets attackers who can configure MCP (Model Context Protocol) servers supply arbitr
SQL injection in AzuraCast's backup restore flow (versions up to and including 0.23.7) lets an attacker achieve privileg
Arbitrary file read in Yu AI Code Mother v4.3 lets anonymous, remote attackers retrieve files outside the intended previ
Remote code execution in APScheduler (all versions through 3.10.x and 4.0.0a5) is achievable when applications deseriali
Same weakness CWE-121 – Stack-based Buffer Overflow
View allSame technique Buffer Overflow
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-26698