CVE-2026-53170: Linux Kernel Ethos-U NPU Local Privilege Escalation
CVE-2026-53170 is a privilege escalation vulnerability in the Linux kernel's Arm Ethos-U NPU (neural processing unit) driver. A local attacker with basic user privileges can trigger unsafe DMA (direct memory access) operations by submitting incomplete hardware commands, allowing the NPU to read or write arbitrary physical memory locations. The flaw stems from an initialization check that fails when arithmetic overflow wraps a sentinel value, bypassing memory bounds validation.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 8.8 HIGH · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
- Weaknesses (CWE)
- CWE-908
- Affected products
- 7 configuration(s)
- Published / Modified
- 2026-06-25 / 2026-07-06
NVD description (verbatim)
In the Linux kernel, the following vulnerability has been resolved: accel/ethosu: reject DMA commands with uninitialized length cmd_state_init() initializes the command state with memset(0xff), leaving dma->len at U64_MAX to signal missing setup. The only setter is NPU_SET_DMA0_LEN; if userspace omits this command and issues NPU_OP_DMA_START, dma->len remains U64_MAX. In dma_length(), a positive stride added to U64_MAX wraps to a small value. With size0 == 1, check_mul_overflow() does not trigger and dma_length() returns 0 instead of U64_MAX. The caller's U64_MAX check then passes, region_size[] stays 0, and the bounds check in ethosu_job.c is bypassed, allowing hardware to execute DMA with stale physical addresses. Fix by checking for U64_MAX at the start of dma_length() before any arithmetic, consistent with the sentinel value used throughout the driver to detect uninitialized fields.
2 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The accel/ethosu driver uses memset(0xff) to initialize command state, setting dma->len to U64_MAX as a sentinel for 'uninitialized.' The NPU_SET_DMA0_LEN command is the only legitimate setter. If userspace submits NPU_OP_DMA_START without first issuing NPU_SET_DMA0_LEN, dma->len remains U64_MAX. In the dma_length() function, adding a positive stride to U64_MAX causes integer wraparound, yielding a small value. When size0 equals 1, check_mul_overflow() does not catch the overflow, and dma_length() returns 0 instead of U64_MAX. The caller's validation check for U64_MAX then incorrectly passes, region_size[] remains 0, and the memory bounds check in ethosu_job.c is circumvented. The fix adds an explicit U64_MAX check before arithmetic operations in dma_length().
Business impact
This vulnerability permits local privilege escalation on systems running vulnerable Linux kernels with Ethos-U NPU hardware. An attacker with local user access can corrupt kernel memory, potentially gaining root privileges, reading sensitive data, or causing denial of service. Organizations deploying Arm-based AI accelerators in multi-tenant or untrusted environments face elevated risk of container escape, lateral movement, or data exfiltration.
Affected systems
Linux kernel versions with the accel/ethosu driver. Vulnerability requires local access and affects systems where unprivileged users can submit NPU commands. Arm Ethos-U accelerators used in AI inference appliances, edge compute platforms, and certain mobile or embedded deployments are in scope. Consult vendor security advisories and your kernel version against the Linux kernel security database to determine precise affected versions.
Exploitability
Exploitability is moderate to high. The attack requires local user-level access (PR:L) and no user interaction (UI:N), making it practical for multi-user systems or container escape scenarios. No network access is needed (AV:L). The vulnerability does not appear in active exploitation databases; however, the attack surface is straightforward: send an incomplete command sequence to the NPU driver. Complexity is low (AC:L) because no race conditions or special timing are needed.
Remediation
Apply the Linux kernel patch that adds U64_MAX validation at the start of dma_length() before any arithmetic. Verify the patch against the official Linux kernel security advisories and your vendor's release notes. Alternatively, if kernel patching is delayed, restrict unprivileged user access to NPU device nodes via SELinux, AppArmor, or device permissions until a patched kernel is deployed.
Patch guidance
Update the Linux kernel to a version that includes the fix for CVE-2026-53170. Consult your Linux distribution (Red Hat, Ubuntu, Debian, etc.) for the specific kernel version or backport. Verify the patch in the accel/ethosu driver's dma_length() function explicitly checks for U64_MAX before performing arithmetic. Test in a non-production environment before rollout.
Detection guidance
Monitor kernel logs for unusual ethosu driver activity or DMA-related errors. Audit access to /dev/ethosu* or similar NPU device nodes. Host-based intrusion detection systems (HIDS) can flag suspicious memory access patterns or privilege escalation attempts originating from NPU command sequences. Verify kernel version and compare against patched releases from your vendor. Review user and container isolation policies to limit who can interact with NPU hardware.
Why prioritize this
CVSS 8.8 HIGH severity with local privilege escalation (C:H, I:H, A:H) warrants prompt remediation. The scope impact (S:C) means a compromise affects the entire system beyond the driver's context. Although not yet widely exploited in the wild (KEV status: false), the low complexity and absence of special privileges make this a prime target once public. Prioritize systems in multi-tenant or edge-compute roles.
Risk score, explained
The 8.8 CVSS reflects high severity: a local attacker gains full system confidentiality, integrity, and availability impact. Low attack complexity (AC:L) and local-only requirement (AV:L) with low privileges (PR:L) mean minimal barriers to exploitation. The scope change from the driver context to system-wide impact elevates risk. Absence from KEV does not diminish urgency; this is a textbook privilege-escalation path in shared environments.
Frequently asked questions
Do I need network access to exploit this vulnerability?
No. CVE-2026-53170 requires only local user-level access (AV:L). An attacker must have a shell or container on the affected system. Remote exploitation is not possible via this vector alone.
What if I don't have Ethos-U NPU hardware?
If your systems do not include Arm Ethos-U accelerators, the accel/ethosu driver is not compiled or loaded, and this vulnerability does not apply. Check your kernel config for CONFIG_ETHOSU or query 'lsmod | grep ethosu' to confirm.
Can this be exploited from a container or sandbox?
Yes, if the container or sandbox has access to the NPU device node (/dev/ethosu*). Containerized workloads with device access inherit the risk. Restrict NPU device access via seccomp, capability drops, or device policies to mitigate.
What is the difference between this and a typical buffer overflow?
This is not a buffer overflow. It is a logic flaw: an uninitialized sentinel value (U64_MAX) fails a validation check due to integer wraparound in arithmetic. The bounds check is skipped, allowing DMA to use stale, potentially dangerous addresses rather than corrupting a buffer directly.
This analysis is based on the CVE record and technical description published as of June 2026. Patch availability and affected kernel versions vary by Linux distribution and vendor. Consult your vendor's security advisory and test patches in a non-production environment before deployment. SEC.co does not warrant the completeness or accuracy of remediation steps; follow official vendor guidance for your platform. No proof-of-concept or exploit code is provided. Use this analysis for risk prioritization and vendor communication only. Source: NVD (public-domain), retrieved 2026-08-03. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-11089MEDIUMGoogle Chrome Memory Disclosure in Media Handling
- CVE-2026-46132MEDIUMLinux Kernel Stack Memory Leak via rtnetlink VF Information Disclosure
- CVE-2026-46139MEDIUMLinux SMB Client Uninitialized Buffer in Security Descriptors
- CVE-2026-46167MEDIUMLinux Kernel USB Printer Driver Uninitialized Heap Memory Leak via LPGETSTATUS ioctl
- CVE-2026-46169MEDIUMLinux HFS+ Catalog Record Validation Vulnerability
- CVE-2026-46186MEDIUMLinux Bluetooth Virtio Driver Memory Validation Flaw
- CVE-2026-46257MEDIUMLinux SP804 Timer Kernel Panic on ARM32 – Patch & Detection
- CVE-2026-52985MEDIUMLinux Kernel Netdevsim Uninitialized Memory Bug