data built 2026-10-19T13:16:53Z

Look up another CVE · open CVE-2026-90316 in the interactive tracker

CVE-2026-90316

drm/omap: dsi: Do not copy isr table

7.8 EPSS 0.2% AV:L

Published 2026-09-17 (31 days ago) by the Linux kernel CNA. Subsystem drivers/gpu. Debian urgency: not yet assigned.

What to do, per Debian release

Debian's own status for CVE-2026-90316 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

ReleaseStatus VersionWhat this means
Debian 12bookwormfixedDLA-4841-1 · 2026-10-17 · text6.1.190-1Update the kernel and reboot. DLA-4841-1 shipped the fix on 2026-10-17, in 6.1.190-1. A running kernel keeps the old code until the machine restarts.
Debian 13trixiefixedDSA-6528-1 · 2026-09-29 · text6.12.111-1Update the kernel and reboot. DSA-6528-1 shipped the fix on 2026-09-29, in 6.12.111-1. A running kernel keeps the old code until the machine restarts.
Debian 14forkyfixed7.2.6-1Update the kernel and reboot. Fixed in 7.2.6-1. A running kernel keeps the old code until the machine restarts.
Debian unstablesidfixed7.2.6-1Update the kernel and reboot. Fixed in 7.2.6-1. A running kernel keeps the old code until the machine restarts.
Debian 12bookworm · linux-6.12fixedDLA-4817-1 · 2026-10-04 · text6.12.111-1~deb12u1Update the kernel and reboot. DLA-4817-1 shipped the fix on 2026-10-04, in 6.12.111-1~deb12u1. A running kernel keeps the old code until the machine restarts.

The vulnerability

What the bug is

To be able to unregister stuff from isrs, the corresponding table was copied. Nobody seems to unregister stuff that way, so it does not help. But there are stack-allocated objects passed to these isrs giving chances of UAF of these objects if irqs are unregistered while they are handled, so better do not copy that table.

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/gpu/drm/omapdrm/dss/dsi.c
drivers/gpu/drm/omapdrm/dss/dsi.h

What this is
DRM DRIVERS FOR TI OMAPMAINTAINERS section matched on drivers/gpu/drm/omapdrm/ · dri-devel@lists.freedesktop.org · Maintained
Show whether Debian builds this, per release

Not established. This site could not find the build rule for the affected file in the kernel trees Debian ships, so it has no answer about whether Debian compiles this code. Read that as unknown, never as absent.

  • bookworm, trixie, forky, sid, bookworm · linux-6.12?
?
not established - no Makefile entry for the affected file

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.

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

Signals

Published
2026-09-17 (31 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.16%, higher than 5.3% of all CVEssource
CISA KEV
not listedthe KEV catalogue
Debian urgency
not yet assignedsource
Subsystem
drivers/gpu

Upstream fixes

The versions the CNA records as introducing and fixing this, and the commit for each. source

IntroducedFixed inCommit
2.6.395.15.221b3cbd1451c24
2.6.396.1.188f6733460b6d4
2.6.396.6.157542a6a3ec77c
2.6.396.12.1102c27a84ba8d1
2.6.396.18.529063b30faae8
2.6.397.2.630810bdf273b
2.6.397.397c03b32b28a

Debian advisories

AdvisoryDateShipped toDebian
DLA-4841-12026-10-17bookworm 6.1.190-1tracker
DLA-4817-12026-10-04bookworm 6.12.111-1~deb12u1tracker
DSA-6528-12026-09-29trixie 6.12.111-1tracker

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 UAF is reached from local DRM_IOCTL_MODE_ATOMIC on /dev/dri/card*: dsi_bridge_disable()→dsi_disable()→dsi_sync_vc(), or a command-mode pageflip via omap_crtc_flush()→dsi_update_channel()→_dsi_send_nop()→dsi_vc_send_bta_sync(). Those register stack objects that omap_dsi_irq_handler() later fires from isr_tables_copy; no remote protocol carries this.
AC:LAttack complexity, low
The attacker repeats those commits/pageflips so dsi_vc_send_bta_sync()/dsi_sync_vc_vp() register a stack completion then dsi_unregister_isr_vc() after wait_for_completion_timeout(), while DSI BTA/PACKET_SENT IRQs run omap_dsi_irq_handler() on another CPU against the copied table; both sides of the copy-vs-unregister race are attacker-driven.
PR:LPrivileges required, low
DRM_IOCTL_MODE_ATOMIC is gated by DRM_MASTER in drm_ioctl_permit(), not CAP_SYS_ADMIN. drm_master_open() makes the first opener of an unclaimed omapdrm card the master, and a seat/video-group user on AM57x/OMAP DSI hardware typically holds that; this is ordinary local privilege, not init-namespace root.
UI:NUser interaction, none
The attacker opens /dev/dri/card* and submits their own atomic commits or dirty/page-flip ioctls that call dsi_vc_send_bta_sync() or dsi_sync_vc(); no other user must mount media, confirm a prompt, or attach a panel.
S:UScope, unchanged
dsi_call_isrs() running dsi_completion_handler()/dsi_packet_sent_handler_vp() corrupts kernel stack in the same kernel that hosts omapdrm; this is local kernel memory corruption, not a VM, IOMMU, or sandbox-boundary escape.
C:HConfidentiality impact, high
dsi_call_isrs() invokes dsi_packet_sent_handler_vp/l4 with isr_data->arg still pointing at a returned dsi_packet_sent_handler_data / DECLARE_COMPLETION_ONSTACK frame; after reuse that object is read as a fake dsi pointer through dsi_read_reg()/REG_GET, which is a UAF read of kernel memory.
I:HIntegrity impact, high
The same dangling arg is passed to complete() in dsi_completion_handler and to complete(vp_data->completion) in the packet-sent handlers; a reused stack slot that overwrites the completion pointer lets complete() lock and wake a wait-queue at an attacker-influenced address, a kernel write/control-flow hijack.
A:HAvailability impact, high
complete() on a freed stack completion, or dsi_read_reg() through a dangling dsi_data in dsi_packet_sent_handler_vp, oopses or panics the kernel even if the UAF is not turned into a full write primitive.