Look up another CVE · open CVE-2026-98143 in the interactive tracker
CVE-2026-98143
accel: ethosu: Don't read the U65 rounding mode as a storage mode
Published 2026-09-25 (24 days ago) by the Linux kernel CNA. Subsystem drivers/accel. Debian urgency: unimportant.
What to do, per Debian release
Debian's own status for CVE-2026-98143 in every release this site tracks, and what each one means in practice. Every status below is the one the Debian Security Team publishes for this CVE. source
| Release | Status | Version | What this means |
|---|---|---|---|
| Debian 12bookworm | not affected | 6.1.190-1 | Nothing to do. bookworm never shipped the vulnerable code. |
| Debian 13trixie | not affected | 6.12.113-1 | Nothing to do. trixie never shipped the vulnerable code. |
| Debian 14forky | fixed | 7.2.7-1 | Update the kernel and reboot. Fixed in 7.2.7-1. A running kernel keeps the old code until the machine restarts. |
| Debian unstablesid | fixed | 7.2.7-1 | Update the kernel and reboot. Fixed in 7.2.7-1. A running kernel keeps the old code until the machine restarts. |
The vulnerability
What the bug is
Bits 15:14 of NPU_SET_{IFM,OFM}_PRECISION select the activation storage mode on U85 only. On U65 the same field holds the rounding mode, and the command stream parser has read it as a storage mode since the driver was added. That went unnoticed while unknown values fell through the switch, but now that they are rejected, every U65 command stream that asks for natural rounding (2) fails CMDSTREAM_BO_CREATE with -EINVAL. Mesa emits it for average pooling, concatenation, split, unpack, strided slice, LUT and argmax, which is 72 failures of the Teflon test suite on an i.MX93. Truncating rounding (1) is misread as well: it picks the two-tile address path and computes a bogus feature map size from tile bases the command stream never set. Read the field as a storage mode only on the hardware where it is one.
Where it lives
The fix touches these files. If the subsystem is one you do not use, the practical exposure is lower, though the package is still the vulnerable one.
drivers/accel/ethosu/ethosu_gem.c
- What this is
- ARM ETHOS-U NPU DRIVERMAINTAINERS section matched on drivers/accel/ethosu/ · dri-devel@lists.freedesktop.org · Supported
Check it on the machine
grep -wE 'CONFIG_DRM_ACCEL|CONFIG_DRM_ACCEL_ARM_ETHOSU' /boot/config-$(uname -r)Reads the booted kernel's own configuration, on the machine and nowhere else. =y is built in, =m is a module, and an is not set line means the code is not there.
Show whether Debian builds this, per release
Debian does not build this code in 2 releases. The build rule could not be established for 2 releases, so nothing is claimed about those.
- bookworm, trixie?
- forky, sidn
- ?
- not established - no Makefile entry for the affected file
- n
- not enabled on any flavour - this release does not build the code
Where a release above reads "not established", no build rule for the affected file was found in that release's kernel tree. That is a gap in this lookup, not a finding that the code is absent.
- Build switches
- CONFIG_DRM_ACCEL, CONFIG_DRM_ACCEL_ARM_ETHOSU
- Reads as
- all on means the file is compiled; any one off means it is not.
From the configuration Debian publishes for every kernel flavour it builds. It covers only the architectures Debian ships a linux-config package for, and nothing about a kernel you built yourself. Debian's own status above stays authoritative about the source package.MAINTAINERS kbuild Makefiles Debian linux-config packages
Signals
- Published
- 2026-09-25 (24 days ago)source
- CVSS
- 7.8 high
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:Hsource recompute it - Attack vector
- local (AV:L)source
- EPSS
- 0.11%, higher than 1.3% of all CVEssource
- CISA KEV
- not listedthe KEV catalogue
- Debian urgency
- unimportantsource
- Subsystem
- drivers/accel
Upstream fixes
The versions the CNA records as introducing and fixing this, and the commit for each. source
| Introduced | Fixed in | Commit |
|---|---|---|
| 6.19 | 7.2.7 | 6b08adbda8ea |
| 6.19 | 7.3 | db9deec5a345 |
Why the CNA scored it this way
Quoted from the kernel CNA's own scoring file, word for word. A highlighted metric carries the most severe value CVSS v3.1 defines for it, which is what pushes the score up. source
- AV:LAttack vector, local
- The malformed data is an NPU command stream a local process passes through DRM_IOCTL_ETHOSU_CMDSTREAM_BO_CREATE on /dev/accel/accelN, which is validated by ethosu_gem_cmdstream_copy_and_validate() -> calc_sizes() -> feat_matrix_length(), then run via DRM_IOCTL_ETHOSU_SUBMIT. No network or radio transport carries it.
- AC:LAttack complexity, low
- The attacker writes the whole command stream: rounding bits 15:14 = 1 in NPU_SET_OFM_PRECISION, x past WIDTH0_M1, and an arbitrary NPU_SET_OFM_BASE1. The validator then checks only base[0] while the U65 hardware uses base[1]. The result is deterministic and needs no race.
- PR:LPrivileges required, low
- The ethosu ioctls CMDSTREAM_BO_CREATE and SUBMIT are registered with flags 0, with no DRM_ROOT_ONLY or capability check. Only permission to open the accel node is needed, which an ordinary user in the render/video group on a U65 board (e.g. i.MX93) holds.
- UI:NUser interaction, none
- The attacker's own process builds and submits the command stream. No other user has to do anything.
- S:UScope, unchanged
- The broken check is the kernel's own command-stream validator, and the NPU DMA it lets through corrupts the host kernel's own memory. That is the same security authority, i.e. a normal local privilege escalation, not a guest or sandbox escape.
- C:HConfidentiality impact, high
- With rounding mode 1 on U65, feat_matrix_length() uses the storage-1 tile path and never bounds IFM/IFM2 base[1]/base[3]. The NPU can therefore DMA-read memory past the region BO at an offset the attacker chooses, and the result comes back through the attacker's mmapped OFM BO.
- I:HIntegrity impact, high
- The same mismatch on NPU_SET_OFM_PRECISION leaves OFM base[1]/base[3] unchecked, so region_size[] understates what the hardware writes. The ethosu_job.c region_size > gem->size check passes while the NPU writes attacker-computed output outside the BO, into kernel memory.
- A:HAvailability impact, high
- Uncontrolled NPU DMA writes outside the BO can corrupt kernel data and panic the system. On unaffected command streams, the misread also makes every Mesa U65 job with natural rounding fail with -EINVAL.