CVE-2026-98094CWE-667

CVE-2026-98094

Medium · published September 25, 2026

CVSS v3.1
5.5
EPSS
0%
Percentile
6.8
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

staging: fbtft: make dirty_lock IRQ-safe

fbtft_mkdirty() can be reached from the fbcon rendering path while

processing printk() in hardirq context. Meanwhile, dirty_lock is also

taken by fbtft_deferred_io() in workqueue context with local interrupts

enabled.

Lockdep reports a possible IRQ lock inversion involving dirty_lock and

console_owner. A hardirq can interrupt a CPU holding dirty_lock and

enter the console rendering path, which can attempt to acquire

dirty_lock again.

The following lockdep report was observed on an RK3566 system with

CONFIG_PROVE_LOCKING enabled:

WARNING: possible irq lock inversion dependency detected

swapper/2/0 just changed the state of lock:

(console_owner){-...}-{0:0}

but this lock took another, HARDIRQ-unsafe lock in the past:

(&par->dirty_lock){+.+.}-{2:2}

CPU0 CPU1

---- ----

lock(&par->dirty_lock);

local_irq_disable();

lock(console_owner);

lock(&par->dirty_lock);

<Interrupt>

lock(console_owner);

*** DEADLOCK ***

Use spin_lock_irqsave() for fbtft_mkdirty() and spin_lock_irq() for

fbtft_deferred_io(). They only access the dirty line range, so the

IRQ-off regions remain short.

The record
Technical detail
CVSS v3.1
5.5 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00176 · 6.8th percentile
Weakness
CWE-667 · Improper Locking
Published
2026-09-25T15:17Z
Affected products (8)
ProductVersionsFixed in
linux/linux_kernel≥ 4.0, < 5.10.2715.10.271
linux/linux_kernel≥ 5.11, < 5.15.2225.15.222
linux/linux_kernel≥ 5.16, < 6.1.1896.1.189
linux/linux_kernel≥ 6.2, < 6.6.1586.6.158
linux/linux_kernel≥ 6.7, < 6.12.1116.12.111
linux/linux_kernel≥ 6.13, < 6.18.536.18.53
linux/linux_kernel≥ 6.19, < 7.2.77.2.7
linux/linux_kernelall versions—
References (8)
EPSS history
Timeline
  • 27 SEP 03:28Z
    EPSS moved — → 0%
    epss
  • 25 SEP 10:24Z
    staging: fbtft: make dirty_lock IRQ-safe
    cvelistv5