CVE-2026-31599: media: vidtv: fix NULL pointer dereference in vidtv_channel_pmt_match_sections
In the Linux kernel, the following vulnerability has been resolved:
media: vidtv: fix NULL pointer dereference in vidtvchannelpmtmatchsections
syzbot reported a general protection fault in vidtvpsidescassign [1].
vidtvpsipmtstreaminit() can return NULL on memory allocation failure, but vidtvchannelpmtmatchsections() does not check for this. When tail is NULL, the subsequent call to vidtvpsidescassign(&tail->descriptor, desc) dereferences a NULL pointer offset, causing a general protection fault.
Add a NULL check after vidtvpsipmtstreaminit(). On failure, clean up the already-allocated stream chain and return.
[1] Oops: general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] SMP KASAN PTI KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007] RIP: 0010:vidtvpsidescassign+0x24/0x90 drivers/media/test-drivers/vidtv/vidtvpsi.c:629 Call Trace: <TASK> vidtvchannelpmtmatchsections drivers/media/test-drivers/vidtv/vidtvchannel.c:349 [inline] vidtvchannelsiinit+0x1445/0x1a50 drivers/media/test-drivers/vidtv/vidtvchannel.c:479 vidtvmuxinit+0x526/0xbe0 drivers/media/test-drivers/vidtv/vidtvmux.c:519 vidtvstartstreaming drivers/media/test-drivers/vidtv/vidtvbridge.c:194 [inline] vidtvstartfeed+0x33e/0x4d0 drivers/media/test-drivers/vidtv/vidtvbridge.c:239
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 6.6.137.1-1 - Upgrade
Upgrade
debian/linuxto a version that resolves this vulnerability.Fixed in 6.1.176-1Fixed in 6.1.190-1Fixed in 6.12.107-1Fixed in 6.12.115-2Fixed in 7.2.12-1Fixed in 7.2.15-1 - Compensating control
Add a NULL check after vidtv_psi_pmt_stream_init(); if it returns NULL due to memory-allocation failure, clean up the already-allocated stream chain and return before dereferencing tail.
Event History
Frequently Asked Questions
What conditions are required to trigger the crash?
The failure occurs when vidtv_psi_pmt_stream_init() returns NULL because memory allocation fails while vidtv_channel_pmt_match_sections() is processing PMT stream data. The vulnerable code then dereferences the NULL stream pointer while assigning its descriptor.
What is the practical impact of exploitation?
The described outcome is a kernel general protection fault caused by a NULL pointer dereference. The supplied severity vector indicates local access and low privileges are required, with high availability impact and no stated confidentiality or integrity impact.
Is this limited to a production media driver?
The affected path is identified as drivers/media/test-drivers/vidtv. The provided software list also includes the Linux kernel, Debian linux, and Microsoft azl3 kernel 6.6.134.1-2.
What does the fix do?
The fix checks whether vidtv_psi_pmt_stream_init() returned NULL before using the returned stream pointer. If allocation fails, it cleans up the stream chain already allocated and returns instead of dereferencing the NULL pointer.