{
  "affected": [
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:12",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:13",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:14",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "details": "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:   (\u0026par-\u003edirty_lock){+.+.}-{2:2}    CPU0                    CPU1   ----                    ----   lock(\u0026par-\u003edirty_lock);                          local_irq_disable();                          lock(console_owner);                          lock(\u0026par-\u003edirty_lock);   \u003cInterrupt\u003e     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.",
  "id": "DEBIAN-CVE-2026-98094",
  "modified": "2026-09-26T04:47:41.738984607Z",
  "published": "2026-09-25T11:17:39.133Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://security-tracker.debian.org/tracker/CVE-2026-98094"
    }
  ],
  "upstream": [
    "CVE-2026-98094"
  ]
}