8.8
/ 10
HIGH
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Description
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.
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.
AI Analysis
DMA commands with uninitialized length can be executed, allowing hardware to access stale physical addresses
Basic Information
ID
CVE-2026-53170
Source
Linux
Published
Jun 25, 2026 at 08:38
Modified
Jun 28, 2026 at 06:39
Affected Product
Vendor
Linux
Product
Linux
Version
5a5e9c0228e613f0ef2a58b9782d7c0ea8f1e58b
Affected Versions
Linux Linux 5a5e9c0228e613f0ef2a58b9782d7c0ea8f1e58b
Linux Linux 5a5e9c0228e613f0ef2a58b9782d7c0ea8f1e58b
Linux Linux 6.19
Linux Linux 5a5e9c0228e613f0ef2a58b9782d7c0ea8f1e58b
Linux Linux 6.19
AI Assessment
AI Score
8.8 / 10
AI Severity
High
Vendor
The Linux Foundation
Product
Linux Kernel
Version
6.19