media: dvb-usb: fix memory leak in dvb_usb_adapter_init()
In the Linux kernel, the following vulnerability has been resolved:
media: dvb-usb: fix memory leak in dvb_usb_adapter_init()
Syzbot reports a memory leak in "dvb_usb_adapter_init()".
The leak is due to not accounting for and freeing current iteration's
adapter->priv in case of an error. Currently if an error occurs,
it will exit before incrementing "num_adapters_initalized",
which is used as a reference counter to free all adap->priv
in "dvb_usb_adapter_exit()". There are multiple error paths that
can exit from before incrementing the counter. Including the
error handling paths for "dvb_usb_adapter_stream_init()",
"dvb_usb_adapter_dvb_init()" and "dvb_usb_adapter_frontend_init()"
within "dvb_usb_adapter_init()".
This means that in case of an error in any of these functions the
current iteration is not accounted for and the current iteration's
adap->priv is not freed.
Fix this by freeing the current iteration's adap->priv in the
"stream_init_err:" label in the error path. The rest of the
(accounted for) adap->priv objects are freed in dvb_usb_adapter_exit()
as expected using the num_adapters_initalized variable.
Syzbot report:
BUG: memory leak
unreferenced object 0xffff8881172f1a00 (size 512):
comm "kworker/0:2", pid 139, jiffies 4294994873 (age 10.960s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
[] dvb_usb_adapter_init drivers/media/usb/dvb-usb/dvb-usb-init.c:75 [inline]
[] dvb_usb_init drivers/media/usb/dvb-usb/dvb-usb-init.c:184 [inline]
[] dvb_usb_device_init.cold+0x4e5/0x79e drivers/media/usb/dvb-usb/dvb-usb-init.c:308
[] dib0700_probe+0x8d/0x1b0 drivers/media/usb/dvb-usb/dib0700_core.c:883
[] usb_probe_interface+0x177/0x370 drivers/usb/core/driver.c:396
[] call_driver_probe drivers/base/dd.c:542 [inline]
[] really_probe.part.0+0xe7/0x310 drivers/base/dd.c:621
[] really_probe drivers/base/dd.c:583 [inline]
[] __driver_probe_device+0x10c/0x1e0 drivers/base/dd.c:752
[] driver_probe_device+0x2a/0x120 drivers/base/dd.c:782
[] __device_attach_driver+0xf6/0x140 drivers/base/dd.c:899
[] bus_for_each_drv+0xb7/0x100 drivers/base/bus.c:427
[] __device_attach+0x122/0x260 drivers/base/dd.c:970
[] bus_probe_device+0xc6/0xe0 drivers/base/bus.c:487
[] device_add+0x5fb/0xdf0 drivers/base/core.c:3405
[] usb_set_configuration+0x8f2/0xb80 drivers/usb/core/message.c:2170
[] usb_generic_driver_probe+0x8c/0xc0 drivers/usb/core/generic.c:238
[] usb_probe_device+0x5c/0x140 drivers/usb/core/driver.c:293
[] call_driver_probe drivers/base/dd.c:542 [inline]
[] really_probe.part.0+0xe7/0x310 drivers/base/dd.c:621
[] really_probe drivers/base/dd.c:583 [inline]
[] __driver_probe_device+0x10c/0x1e0 drivers/base/dd.c:752
CVE 정보
EPSS
EPSS는 취약점이 악용될 가능성을 예측하는 점수 모델입니다.
EPSS 점수
EPSS 모델은 0과 1(0~100%) 사이의 확률 점수를 생성합니다. 점수가 높을수록 취약점이 악용될 가능성이 높습니다.
날짜
EPSS V0
EPSS V1
EPSS V2 (> 2022-02-04)
EPSS V3 (> 2025-03-07)
EPSS V4 (> 2025-03-17)
2025-12-08
–
–
–
–
0.03%
2025-12-14
–
–
–
–
0.04%
2026-01-09
–
–
–
–
0.05%
2026-04-12
–
–
–
–
0.06%
2026-05-10
–
–
–
–
0.04%
2026-05-31
–
–
–
–
0.06%
2026-06-14
–
–
–
–
0.06%
EPSS 백분위수
백분위수는 EPSS 점수에 따라 CVE의 순위를 매기는 데 사용됩니다. 예를 들어 EPSS 점수 기준 95번째 백분위수의 CVE는 다른 CVE의 95%보다 악용될 가능성이 높습니다.