PatchSiren cyber security CVE debrief
CVE-2026-23253 Linux CVE debrief
A use-after-free vulnerability exists in the Linux kernel's DVB (Digital Video Broadcasting) core subsystem, specifically in the DVR (Digital Video Recorder) device open path. When a new reader opens the DVR device via `dvb_dvr_open()`, the function incorrectly calls `dvb_ringbuffer_init()`, which reinitializes a shared waitqueue list head to empty. This waitqueue is shared across all open instances of the same DVR device. The reinitialization orphans existing waitqueue entries from `io_uring` poll or `epoll`, leaving them with stale `prev`/`next` pointers while the list head is reset to `{self, self}`. This can lead to memory corruption, privilege escalation, or denial of service when the stale waitqueue entries are subsequently accessed. The vulnerability affects Linux kernels from version 2.6.17 through multiple stable branches. The fix replaces the `dvb_ringbuffer_init()` call with direct assignment of buffer data/size and a call to `dvb_ringbuffer_reset()`, which properly resets read/write positions without touching the waitqueue or spinlock.
- Vendor
- Linux
- Product
- Unknown
- CVSS
- HIGH 7.8
- CISA KEV
- Not listed in stored evidence
- Original CVE published
- 2026-03-18
- Original CVE updated
- 2026-06-01
- Advisory published
- 2026-03-18
- Advisory updated
- 2026-06-01
Who should care
Linux system administrators, kernel maintainers, embedded device manufacturers using DVB subsystems, security teams managing Linux workstations and servers with DVB hardware, and organizations running containerized or multi-tenant environments where untrusted users may have access to DVB device nodes
Technical summary
The vulnerability is a use-after-free condition in `drivers/media/dvb-core/dmxdev.c`. The `dvb_dvr_open()` function calls `dvb_ringbuffer_init()` on each new open of a DVR device. This function calls `init_waitqueue_head()`, which resets the waitqueue list head. Because `dmxdev->dvr_buffer.queue` is shared across all opens of the same DVR device, any existing waitqueue entries (from `io_uring` poll, `epoll`, or blocking reads) become orphaned with dangling pointers. The waitqueue and spinlock were already correctly initialized in `dvb_dmxdev_init()`. The fix replaces `dvb_ringbuffer_init()` with direct buffer pointer assignment and `dvb_ringbuffer_reset()`, which resets `pread`, `pwrite`, and `error` with proper memory ordering without reinitializing the waitqueue or spinlock. Attack vector is local, requiring low privileges and no user interaction. Impact is high for confidentiality, integrity, and availability.
Defensive priority
HIGH
Recommended defensive actions
- Apply the relevant stable kernel patch for your branch: 5.10.253 or later, 5.15.203 or later, 6.1.167 or later, 6.6.130 or later, 6.12.77 or later, 6.18.17 or later, 6.19.7 or later, or 7.0-rc1 with the fix included
- Upgrade to a patched Linux kernel version that includes the fix for CVE-2026-23253
- If immediate patching is not possible, restrict access to DVB DVR device nodes (/dev/dvb/adapter*/dvr*) to trusted users only, as local access is required
- Monitor systems for unusual crashes or hangs in DVB-related processes, which may indicate exploitation attempts
- Review custom or out-of-tree DVB drivers for similar patterns of shared waitqueue reinitialization
Evidence notes
The vulnerability was resolved in the Linux kernel media subsystem. The issue was introduced by incorrect reinitialization of a shared ringbuffer waitqueue in `dvb_dvr_open()`. The fix ensures that only buffer data pointers and positions are reset on reopen, preserving the integrity of the shared waitqueue and spinlock that were properly initialized once in `dvb_dmxdev_init()`. Multiple stable kernel branches received patches.
Sources and references
Verified primary and authoritative sources
-
CVE-2026-23253 CVE Program record
Publisher, destination, and source semantics verified
URL: https://www.cve.org/CVERecord?id=CVE-2026-23253
CVE Program - Official CVE Program record with source-provided CVE metadata.
-
CVE-2026-23253 NVD vulnerability detail
Publisher, destination, and source semantics verified
URL: https://nvd.nist.gov/vuln/detail/CVE-2026-23253
NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.
Supplemental references
-
Mitigation or vendor reference
Unverified legacy reference
URL: https://git.kernel.org/stable/c/32eb8e4adc207ef31bc6e5ae56bab940b0176066
416baaa9-dc9f-4396-8d5f-8c081fb06d67 - Patch
-
Mitigation or vendor reference
Unverified legacy reference
URL: https://git.kernel.org/stable/c/527cfa8a3486b3555c5c15e2f62be484a11398dc
416baaa9-dc9f-4396-8d5f-8c081fb06d67 - Patch
-
Mitigation or vendor reference
Unverified legacy reference
URL: https://git.kernel.org/stable/c/af050ab44fa1b1897a940d7d756e512232f5e5df
416baaa9-dc9f-4396-8d5f-8c081fb06d67 - Patch
-
Mitigation or vendor reference
Unverified legacy reference
URL: https://git.kernel.org/stable/c/bfbc0b5b32a8f28ce284add619bf226716a59bc0
416baaa9-dc9f-4396-8d5f-8c081fb06d67 - Patch
-
Mitigation or vendor reference
Unverified legacy reference
URL: https://git.kernel.org/stable/c/cfd94642025e6f71c8f754bdec0800ee95e4f3dd
416baaa9-dc9f-4396-8d5f-8c081fb06d67 - Patch
-
Mitigation or vendor reference
Unverified legacy reference
URL: https://git.kernel.org/stable/c/d71781bad59b1c9d60d7068004581f9bf19c0c9d
416baaa9-dc9f-4396-8d5f-8c081fb06d67 - Patch
-
Mitigation or vendor reference
Unverified legacy reference
URL: https://git.kernel.org/stable/c/f1e520ca2e83ece6731af6167c9e5e16931ecba0
416baaa9-dc9f-4396-8d5f-8c081fb06d67 - Patch
Methodology and review provenance
AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.