In the Linux kernel, the following vulnerability has been resolved:
media: vidtv: Fix a null-ptr-deref in vidtvmuxstop_thread
syzbot report a null-ptr-deref in vidtvmuxstop_thread. [1]
If dvb->mux is not initialized successfully by vidtvmuxinit() in the vidtvstartstreaming(), it will trigger null pointer dereference about mux in vidtvmuxstop_thread().
Adjust the timing of streaming initialization and check it before stopping it.
[1] KASAN: null-ptr-deref in range [0x0000000000000128-0x000000000000012f] CPU: 0 UID: 0 PID: 5842 Comm: syz-executor248 Not tainted 6.13.0-rc4-syzkaller-00012-g9b2ffa6148b1 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 RIP: 0010:vidtvmuxstopthread+0x26/0x80 drivers/media/test-drivers/vidtv/vidtvmux.c:471 Code: 90 90 90 90 66 0f 1f 00 55 53 48 89 fb e8 82 2e c8 f9 48 8d bb 28 01 00 00 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <0f> b6 04 02 84 c0 74 02 7e 3b 0f b6 ab 28 01 00 00 31 ff 89 ee e8 RSP: 0018:ffffc90003f2faa8 EFLAGS: 00010202 RAX: dffffc0000000000 RBX: 0000000000000000 RCX: ffffffff87cfb125 RDX: 0000000000000025 RSI: ffffffff87d120ce RDI: 0000000000000128 RBP: ffff888029b8d220 R08: 0000000000000005 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000003 R12: ffff888029b8d188 R13: ffffffff8f590aa0 R14: ffffc9000581c5c8 R15: ffff888029a17710 FS: 00007f7eef5156c0(0000) GS:ffff8880b8600000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f7eef5e635c CR3: 0000000076ca6000 CR4: 00000000003526f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: <TASK> vidtvstopstreaming drivers/media/test-drivers/vidtv/vidtvbridge.c:209 [inline] vidtvstopfeed+0x151/0x250 drivers/media/test-drivers/vidtv/vidtvbridge.c:252 dmxsectionfeedstopfiltering+0x90/0x160 drivers/media/dvb-core/dvbdemux.c:1000 dvbdmxdevfeedstop.isra.0+0x1ee/0x270 drivers/media/dvb-core/dmxdev.c:486 dvbdmxdevfilterstop+0x22a/0x3a0 drivers/media/dvb-core/dmxdev.c:559 dvbdmxdevfilterfree drivers/media/dvb-core/dmxdev.c:840 [inline] dvbdemuxrelease+0x92/0x550 drivers/media/dvb-core/dmxdev.c:1246 _fput+0x3f8/0xb60 fs/filetable.c:450 taskworkrun+0x14e/0x250 kernel/taskwork.c:239 getsignal+0x1d3/0x2610 kernel/signal.c:2790 archdosignalorrestart+0x90/0x7e0 arch/x86/kernel/signal.c:337 exittousermodeloop kernel/entry/common.c:111 [inline] exittousermodeprepare include/linux/entry-common.h:329 [inline] _syscallexittousermodework kernel/entry/common.c:207 [inline] syscallexittousermode+0x150/0x2a0 kernel/entry/common.c:218 dosyscall64+0xda/0x250 arch/x86/entry/common.c:89 entrySYSCALL64afterhwframe+0x77/0x7f
[
{
"signature_type": "Function",
"id": "CVE-2024-57834-012e84db",
"target": {
"function": "vidtv_stop_streaming",
"file": "drivers/media/test-drivers/vidtv/vidtv_bridge.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@52d3512f9a7a52ef92864679b1e8e8aa16202c6a",
"digest": {
"function_hash": "76564279651250303301051841682394881307",
"length": 243.0
}
},
{
"signature_type": "Line",
"id": "CVE-2024-57834-0717fa2a",
"target": {
"file": "drivers/media/test-drivers/vidtv/vidtv_bridge.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@904a8323cc8afa7eb9ce3e67303a2b3f2f787306",
"digest": {
"line_hashes": [
"120913841702439437062589303566041374787",
"193596960472875149496480719423025360555",
"52047838883503211486997484332956761854",
"307126815383745686092924631214763200909",
"139714175096768196917263575524042437868",
"289512038374061167904375625772456848496",
"241307769456842976424558588043155022599",
"212277470994434933342885286367363958420",
"6159684399065542762569033821612140575",
"105324403214048971786277512738088656864"
],
"threshold": 0.9
}
},
{
"signature_type": "Line",
"id": "CVE-2024-57834-1309c319",
"target": {
"file": "drivers/media/test-drivers/vidtv/vidtv_bridge.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@59a707ad952eb2ea8d59457d662b6f4138f17b08",
"digest": {
"line_hashes": [
"120913841702439437062589303566041374787",
"193596960472875149496480719423025360555",
"52047838883503211486997484332956761854",
"307126815383745686092924631214763200909",
"139714175096768196917263575524042437868",
"289512038374061167904375625772456848496",
"241307769456842976424558588043155022599",
"212277470994434933342885286367363958420",
"6159684399065542762569033821612140575",
"105324403214048971786277512738088656864"
],
"threshold": 0.9
}
},
{
"signature_type": "Function",
"id": "CVE-2024-57834-2dec2553",
"target": {
"function": "vidtv_stop_streaming",
"file": "drivers/media/test-drivers/vidtv/vidtv_bridge.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2c5601b99d79d196fe4a37159e3dfb38e778ea18",
"digest": {
"function_hash": "76564279651250303301051841682394881307",
"length": 243.0
}
},
{
"signature_type": "Function",
"id": "CVE-2024-57834-2f19428c",
"target": {
"function": "vidtv_start_streaming",
"file": "drivers/media/test-drivers/vidtv/vidtv_bridge.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@52d3512f9a7a52ef92864679b1e8e8aa16202c6a",
"digest": {
"function_hash": "228422993065064837662994321560368794523",
"length": 902.0
}
},
{
"signature_type": "Function",
"id": "CVE-2024-57834-3bbe1f60",
"target": {
"function": "vidtv_start_streaming",
"file": "drivers/media/test-drivers/vidtv/vidtv_bridge.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2c5601b99d79d196fe4a37159e3dfb38e778ea18",
"digest": {
"function_hash": "228422993065064837662994321560368794523",
"length": 902.0
}
},
{
"signature_type": "Function",
"id": "CVE-2024-57834-4ffea9e4",
"target": {
"function": "vidtv_start_streaming",
"file": "drivers/media/test-drivers/vidtv/vidtv_bridge.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@59a707ad952eb2ea8d59457d662b6f4138f17b08",
"digest": {
"function_hash": "228422993065064837662994321560368794523",
"length": 902.0
}
},
{
"signature_type": "Line",
"id": "CVE-2024-57834-5bf98860",
"target": {
"file": "drivers/media/test-drivers/vidtv/vidtv_bridge.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1221989555db711578a327a9367f1be46500cb48",
"digest": {
"line_hashes": [
"120913841702439437062589303566041374787",
"193596960472875149496480719423025360555",
"52047838883503211486997484332956761854",
"307126815383745686092924631214763200909",
"139714175096768196917263575524042437868",
"289512038374061167904375625772456848496",
"241307769456842976424558588043155022599",
"212277470994434933342885286367363958420",
"6159684399065542762569033821612140575",
"105324403214048971786277512738088656864"
],
"threshold": 0.9
}
},
{
"signature_type": "Function",
"id": "CVE-2024-57834-60564845",
"target": {
"function": "vidtv_stop_streaming",
"file": "drivers/media/test-drivers/vidtv/vidtv_bridge.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@95432a37778c9c5dd105b7b9f19e9695c9e166cf",
"digest": {
"function_hash": "76564279651250303301051841682394881307",
"length": 243.0
}
},
{
"signature_type": "Function",
"id": "CVE-2024-57834-61aa7dab",
"target": {
"function": "vidtv_stop_streaming",
"file": "drivers/media/test-drivers/vidtv/vidtv_bridge.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@904a8323cc8afa7eb9ce3e67303a2b3f2f787306",
"digest": {
"function_hash": "76564279651250303301051841682394881307",
"length": 243.0
}
},
{
"signature_type": "Line",
"id": "CVE-2024-57834-69172d01",
"target": {
"file": "drivers/media/test-drivers/vidtv/vidtv_bridge.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@86307e443c5844f38e1b98e2c51a4195c55576cd",
"digest": {
"line_hashes": [
"120913841702439437062589303566041374787",
"193596960472875149496480719423025360555",
"52047838883503211486997484332956761854",
"307126815383745686092924631214763200909",
"139714175096768196917263575524042437868",
"289512038374061167904375625772456848496",
"241307769456842976424558588043155022599",
"212277470994434933342885286367363958420",
"6159684399065542762569033821612140575",
"105324403214048971786277512738088656864"
],
"threshold": 0.9
}
},
{
"signature_type": "Function",
"id": "CVE-2024-57834-7d837931",
"target": {
"function": "vidtv_stop_streaming",
"file": "drivers/media/test-drivers/vidtv/vidtv_bridge.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@86307e443c5844f38e1b98e2c51a4195c55576cd",
"digest": {
"function_hash": "76564279651250303301051841682394881307",
"length": 243.0
}
},
{
"signature_type": "Function",
"id": "CVE-2024-57834-891d5688",
"target": {
"function": "vidtv_start_streaming",
"file": "drivers/media/test-drivers/vidtv/vidtv_bridge.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@904a8323cc8afa7eb9ce3e67303a2b3f2f787306",
"digest": {
"function_hash": "228422993065064837662994321560368794523",
"length": 902.0
}
},
{
"signature_type": "Function",
"id": "CVE-2024-57834-94b2a2c1",
"target": {
"function": "vidtv_start_streaming",
"file": "drivers/media/test-drivers/vidtv/vidtv_bridge.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@95432a37778c9c5dd105b7b9f19e9695c9e166cf",
"digest": {
"function_hash": "228422993065064837662994321560368794523",
"length": 902.0
}
},
{
"signature_type": "Line",
"id": "CVE-2024-57834-95ca5a81",
"target": {
"file": "drivers/media/test-drivers/vidtv/vidtv_bridge.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@52d3512f9a7a52ef92864679b1e8e8aa16202c6a",
"digest": {
"line_hashes": [
"120913841702439437062589303566041374787",
"193596960472875149496480719423025360555",
"52047838883503211486997484332956761854",
"307126815383745686092924631214763200909",
"139714175096768196917263575524042437868",
"289512038374061167904375625772456848496",
"241307769456842976424558588043155022599",
"212277470994434933342885286367363958420",
"6159684399065542762569033821612140575",
"105324403214048971786277512738088656864"
],
"threshold": 0.9
}
},
{
"signature_type": "Function",
"id": "CVE-2024-57834-9c91ba9d",
"target": {
"function": "vidtv_start_streaming",
"file": "drivers/media/test-drivers/vidtv/vidtv_bridge.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1221989555db711578a327a9367f1be46500cb48",
"digest": {
"function_hash": "228422993065064837662994321560368794523",
"length": 902.0
}
},
{
"signature_type": "Function",
"id": "CVE-2024-57834-a32ddd5a",
"target": {
"function": "vidtv_stop_streaming",
"file": "drivers/media/test-drivers/vidtv/vidtv_bridge.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@59a707ad952eb2ea8d59457d662b6f4138f17b08",
"digest": {
"function_hash": "76564279651250303301051841682394881307",
"length": 243.0
}
},
{
"signature_type": "Line",
"id": "CVE-2024-57834-aa564f09",
"target": {
"file": "drivers/media/test-drivers/vidtv/vidtv_bridge.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2c5601b99d79d196fe4a37159e3dfb38e778ea18",
"digest": {
"line_hashes": [
"120913841702439437062589303566041374787",
"193596960472875149496480719423025360555",
"52047838883503211486997484332956761854",
"307126815383745686092924631214763200909",
"139714175096768196917263575524042437868",
"289512038374061167904375625772456848496",
"241307769456842976424558588043155022599",
"212277470994434933342885286367363958420",
"6159684399065542762569033821612140575",
"105324403214048971786277512738088656864"
],
"threshold": 0.9
}
},
{
"signature_type": "Function",
"id": "CVE-2024-57834-c64f5e9b",
"target": {
"function": "vidtv_start_streaming",
"file": "drivers/media/test-drivers/vidtv/vidtv_bridge.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@86307e443c5844f38e1b98e2c51a4195c55576cd",
"digest": {
"function_hash": "228422993065064837662994321560368794523",
"length": 902.0
}
},
{
"signature_type": "Line",
"id": "CVE-2024-57834-d696314a",
"target": {
"file": "drivers/media/test-drivers/vidtv/vidtv_bridge.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@95432a37778c9c5dd105b7b9f19e9695c9e166cf",
"digest": {
"line_hashes": [
"120913841702439437062589303566041374787",
"193596960472875149496480719423025360555",
"52047838883503211486997484332956761854",
"307126815383745686092924631214763200909",
"139714175096768196917263575524042437868",
"289512038374061167904375625772456848496",
"241307769456842976424558588043155022599",
"212277470994434933342885286367363958420",
"6159684399065542762569033821612140575",
"105324403214048971786277512738088656864"
],
"threshold": 0.9
}
},
{
"signature_type": "Function",
"id": "CVE-2024-57834-e8763bc9",
"target": {
"function": "vidtv_stop_streaming",
"file": "drivers/media/test-drivers/vidtv/vidtv_bridge.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1221989555db711578a327a9367f1be46500cb48",
"digest": {
"function_hash": "76564279651250303301051841682394881307",
"length": 243.0
}
}
]