In the Linux kernel, the following vulnerability has been resolved:
media: xc2028: avoid use-after-free in load_firmware_cb()
syzkaller reported use-after-free in load_firmware_cb() [1]. The reason is because the module allocated a struct tuner in tuner_probe(), and then the module initialization failed, the struct tuner was released. A worker which created during module initialization accesses this struct tuner later, it caused use-after-free.
The process is as follows:
task-6504 worker_thread tuner_probe <= alloc dvb_frontend [2] ... request_firmware_nowait <= create a worker ... tuner_remove <= free dvb_frontend ... request_firmware_work_func <= the firmware is ready load_firmware_cb <= but now the dvb_frontend has been freed
To fix the issue, check the dvd_frontend in load_firmware_cb(), if it is null, report a warning and just return.
[1]: ================================================================== BUG: KASAN: use-after-free in load_firmware_cb+0x1310/0x17a0 Read of size 8 at addr ffff8000d7ca2308 by task kworker/2:3/6504
Call trace: load_firmware_cb+0x1310/0x17a0 request_firmware_work_func+0x128/0x220 process_one_work+0x770/0x1824 worker_thread+0x488/0xea0 kthread+0x300/0x430 ret_from_fork+0x10/0x20
Allocated by task 6504: kzalloc tuner_probe+0xb0/0x1430 i2c_device_probe+0x92c/0xaf0 really_probe+0x678/0xcd0 driver_probe_device+0x280/0x370 __device_attach_driver+0x220/0x330 bus_for_each_drv+0x134/0x1c0 __device_attach+0x1f4/0x410 device_initial_probe+0x20/0x30 bus_probe_device+0x184/0x200 device_add+0x924/0x12c0 device_register+0x24/0x30 i2c_new_device+0x4e0/0xc44 v4l2_i2c_new_subdev_board+0xbc/0x290 v4l2_i2c_new_subdev+0xc8/0x104 em28xx_v4l2_init+0x1dd0/0x3770
Freed by task 6504: kfree+0x238/0x4e4 tuner_remove+0x144/0x1c0 i2c_device_remove+0xc8/0x290 __device_release_driver+0x314/0x5fc device_release_driver+0x30/0x44 bus_remove_device+0x244/0x490 device_del+0x350/0x900 device_unregister+0x28/0xd0 i2c_unregister_device+0x174/0x1d0 v4l2_device_unregister+0x224/0x380 em28xx_v4l2_init+0x1d90/0x3770
The buggy address belongs to the object at ffff8000d7ca2000 which belongs to the cache kmalloc-2k of size 2048 The buggy address is located 776 bytes inside of 2048-byte region [ffff8000d7ca2000, ffff8000d7ca2800) The buggy address belongs to the page: page:ffff7fe00035f280 count:1 mapcount:0 mapping:ffff8000c001f000 index:0x0 flags: 0x7ff800000000100(slab) raw: 07ff800000000100 ffff7fe00049d880 0000000300000003 ffff8000c001f000 raw: 0000000000000000 0000000080100010 00000001ffffffff 0000000000000000 page dumped because: kasan: bad access detected
Memory state around the buggy address: ffff8000d7ca2200: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff8000d7ca2280: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb >ffff8000d7ca2300: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ^ ffff8000d7ca2380: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff8000d7ca2400: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ==================================================================
[2] Actually, it is allocated for struct tuner, and dvb_frontend is inside.
CVSS Details
- CVSS 3.1 Base Score: 7.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linuxUpgrade linux-6.1 | Sep 2, 2024 | Aug 26, 2024 |
| Huawei Euleros 2_0_sp10 | — | Upgrade kernel-toolsUpgrade kernelUpgrade kernel-tools-libsUpgrade kernel-abi-stablelistsUpgrade python3-perf | Nov 11, 2024 | Aug 26, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade python3-perfUpgrade kernel-abi-stablelistsUpgrade kernel-toolsUpgrade kernel-tools-libsUpgrade bpftoolUpgrade kernel | Dec 12, 2024 | Aug 26, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade kernelUpgrade kernel-abi-stablelistsUpgrade python3-perfUpgrade kernel-toolsUpgrade bpftoolUpgrade kernel-tools-libs | Dec 12, 2024 | Aug 26, 2024 |
| Huawei Euleros 2_0_sp9 | — | Upgrade kernelUpgrade kernel-toolsUpgrade python3-perfUpgrade kernel-tools-libs | Nov 11, 2024 | Aug 26, 2024 |
| Suse | — | Upgrade kernel-rt-extraUpgrade kselftests-kmp-defaultUpgrade kernel-default-livepatch-develUpgrade kernel-docs-htmlUpgrade kernel-develUpgrade kselftests-kmp-azureUpgrade kernel-rt_debug-livepatch-develUpgrade dlm-kmp-azureUpgrade kernel-debug-vdsoUpgrade kernel-azureUpgrade kernel-debug-develUpgrade dtb-renesasUpgrade dtb-broadcomUpgrade dtb-allwinnerUpgrade kernel-source-vanillaUpgrade kernel-rt-optionalUpgrade dtb-nvidiaUpgrade dlm-kmp-defaultUpgrade dtb-amdUpgrade dtb-caviumUpgrade kernel-azure-extraUpgrade kernel-obs-buildUpgrade dtb-marvellUpgrade dtb-socionextUpgrade reiserfs-kmp-rtUpgrade ocfs2-kmp-defaultUpgrade kernel-azure-baseUpgrade kselftests-kmp-rtUpgrade kernel-devel-rtUpgrade kernel-default-optionalUpgrade kernel-source-rtUpgrade ocfs2-kmp-azureUpgrade gfs2-kmp-defaultUpgrade dtb-armUpgrade dtb-appleUpgrade kernel-64kb-extraUpgrade kernel-default-baseUpgrade cluster-md-kmp-rtUpgrade dlm-kmp-rtUpgrade dtb-hisiliconUpgrade kernel-rt_debugUpgrade reiserfs-kmp-defaultUpgrade dtb-xilinxUpgrade kernel-docsUpgrade kernel-kvmsmall-livepatch-develUpgrade cluster-md-kmp-64kbUpgrade dtb-sprdUpgrade gfs2-kmp-azureUpgrade kernel-debugUpgrade kernel-defaultUpgrade kernel-64kb-optionalUpgrade kernel-64kb-develUpgrade kernel-zfcpdumpUpgrade dtb-rockchipUpgrade kernel-obs-qaUpgrade kernel-source-azureUpgrade kernel-default-vdsoUpgrade dlm-kmp-64kbUpgrade kernel-symsUpgrade dtb-apmUpgrade kernel-rt-livepatch-develUpgrade kernel-azure-develUpgrade kernel-rt_debug-vdsoUpgrade kselftests-kmp-64kbUpgrade kernel-devel-azureUpgrade dtb-amlogicUpgrade kernel-macrosUpgrade dtb-amazonUpgrade reiserfs-kmp-64kbUpgrade kernel-sourceUpgrade kernel-rt-vdsoUpgrade kernel-rt-develUpgrade kernel-rtUpgrade kernel-kvmsmall-vdsoUpgrade kernel-kvmsmallUpgrade kernel-64kbUpgrade gfs2-kmp-rtUpgrade dtb-qcomUpgrade dtb-alteraUpgrade kernel-rt_debug-develUpgrade cluster-md-kmp-azureUpgrade cluster-md-kmp-defaultUpgrade kernel-kvmsmall-develUpgrade kernel-syms-azureUpgrade kernel-default-extraUpgrade kernel-azure-livepatch-develUpgrade dtb-mediatekUpgrade kernel-default-base-rebuildUpgrade kernel-debug-livepatch-develUpgrade kernel-azure-vdsoUpgrade dtb-freescaleUpgrade kernel-syms-rtUpgrade kernel-azure-optionalUpgrade gfs2-kmp-64kbUpgrade dtb-lgUpgrade ocfs2-kmp-rtUpgrade kernel-64kb-livepatch-develUpgrade ocfs2-kmp-64kbUpgrade kernel-default-livepatchUpgrade kernel-default-develUpgrade reiserfs-kmp-azureUpgrade kernel-rt-livepatchUpgrade dtb-exynosUpgrade kernel-default-man | Dec 5, 2025 | Sep 10, 2024 |
| Ubuntu | — | Upgrade linux-image-azure-cvmUpgrade linux-image-5.15.0-1021-nvidia-tegra-igx-rtUpgrade linux-image-gkeop-5.15Upgrade linux-image-realtimeUpgrade linux-image-genericUpgrade linux-image-5.15.0-1080-realtimeUpgrade linux-image-4.4.0-266-genericUpgrade linux-image-raspi-nolpaeUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-5.15.0-1062-gkeopUpgrade linux-image-5.15.0-1044-xilinx-zynqmpUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-fipsUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-intelUpgrade linux-image-generic-lts-trustyUpgrade linux-image-5.15.0-1033-nvidia-tegraUpgrade linux-image-5.15.0-1079-gcp-fipsUpgrade linux-image-5.4.0-1140-oracleUpgrade linux-image-4.4.0-266-lowlatencyUpgrade linux-image-5.15.0-1074-nvidiaUpgrade linux-image-5.15.0-1084-azureUpgrade linux-image-5.15.0-1077-gkeUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-5.15.0-1081-gcpUpgrade linux-image-5.15.0-136-generic-64kUpgrade linux-image-5.15.0-1077-oracleUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-oem-22.04cUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-5.4.0-1142-aws-fipsUpgrade linux-image-5.4.0-1142-awsUpgrade linux-image-6.8.0-50-generic-64kUpgrade linux-image-aws-fipsUpgrade linux-image-nvidia-tegra-igxUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-gkeUpgrade linux-image-lowlatency-hwe-16.04Upgrade linux-image-5.15.0-1083-azure-fipsUpgrade linux-image-4.15.0-235-lowlatencyUpgrade linux-image-azureUpgrade linux-image-5.4.0-1147-azure-fipsUpgrade linux-image-4.15.0-1186-azureUpgrade linux-image-5.4.0-1129-raspiUpgrade linux-image-6.8.0-50-genericUpgrade linux-image-serverUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-oem-24.04Upgrade linux-image-5.4.0-1101-bluefieldUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-nvidia-6.8Upgrade linux-image-oracle-lts-22.04Upgrade linux-image-6.8.0-1015-gkeUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-5.15.0-1072-ibmUpgrade linux-image-4.4.0-1142-kvmUpgrade linux-image-oem-20.04Upgrade linux-image-5.4.0-1147-azureUpgrade linux-image-6.8.0-1019-nvidia-lowlatencyUpgrade linux-image-gkeopUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-6.8.0-1018-oemUpgrade linux-image-5.15.0-135-generic-lpaeUpgrade linux-image-aws-lts-18.04Upgrade linux-image-oemUpgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-5.4.0-211-generic-lpaeUpgrade linux-image-oem-22.04Upgrade linux-image-6.8.0-1017-oracleUpgrade linux-image-5.4.0-1060-xilinx-zynqmpUpgrade linux-image-5.15.0-1033-nvidia-tegra-rtUpgrade linux-image-6.8.0-1017-oracle-64kUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-virtual-hwe-18.04Upgrade linux-image-oem-20.04cUpgrade linux-image-6.8.0-1019-nvidia-lowlatency-64kUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-gcp-fipsUpgrade linux-image-3.13.0-204-genericUpgrade linux-image-5.15.0-1086-azureUpgrade linux-image-virtual-lts-xenialUpgrade linux-image-5.15.0-1073-intel-iot-realtimeUpgrade linux-image-raspiUpgrade linux-image-aws-hweUpgrade linux-image-oem-22.04dUpgrade linux-image-5.15.0-135-fipsUpgrade linux-image-5.15.0-1075-intel-iotgUpgrade linux-image-5.4.0-1116-fipsUpgrade linux-image-6.8.0-1016-raspiUpgrade linux-image-5.15.0-1074-ibmUpgrade linux-image-5.4.0-211-lowlatencyUpgrade linux-image-oracle-lts-18.04Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-4.4.0-1141-awsUpgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-5.15.0-1086-azure-fdeUpgrade linux-image-oracle-64kUpgrade linux-image-generic-hwe-18.04Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-5.4.0-1048-iotUpgrade linux-image-oracleUpgrade linux-image-5.15.0-135-lowlatency-64kUpgrade linux-image-oem-20.04dUpgrade linux-image-ibmUpgrade linux-image-4.15.0-1178-awsUpgrade linux-image-azure-fdeUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-ibm-lts-20.04Upgrade linux-image-gcp-lts-22.04Upgrade linux-image-azure-fipsUpgrade linux-image-lowlatencyUpgrade linux-image-4.15.0-1171-gcpUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-5.15.0-1077-intel-iotgUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-gcpUpgrade linux-image-4.4.0-1179-awsUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-intel-iotgUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-azure-lts-22.04Upgrade linux-image-6.8.0-1019-nvidiaUpgrade linux-image-virtualUpgrade linux-image-generic-lts-xenialUpgrade linux-image-6.8.0-1017-ibmUpgrade linux-image-kvmUpgrade linux-image-gkeop-6.8Upgrade linux-image-6.8.0-1020-azure-fdeUpgrade linux-image-oem-22.04aUpgrade linux-image-gcp-lts-18.04Upgrade linux-image-oem-osp1Upgrade linux-image-6.8.0-50-lowlatencyUpgrade linux-image-6.8.0-1019-nvidia-64kUpgrade linux-image-5.15.0-1074-raspiUpgrade linux-image-6.8.0-50-lowlatency-64kUpgrade linux-image-azure-lts-20.04Upgrade linux-image-nvidia-64kUpgrade linux-image-5.15.0-1074-nvidia-lowlatencyUpgrade linux-image-awsUpgrade linux-image-5.4.0-1145-gcpUpgrade linux-image-4.15.0-1161-kvmUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-6.8.0-1002-gkeopUpgrade linux-image-virtual-hwe-16.04Upgrade linux-image-gcp-lts-20.04Upgrade linux-image-5.15.0-136-generic-lpaeUpgrade linux-image-5.15.0-1079-gcpUpgrade linux-image-5.4.0-211-genericUpgrade linux-image-4.15.0-1140-oracleUpgrade linux-image-oem-24.04aUpgrade linux-image-raspi2Upgrade linux-image-oem-20.04bUpgrade linux-image-ibm-classicUpgrade linux-image-oem-22.04bUpgrade linux-image-generic-lpaeUpgrade linux-image-azure-lts-18.04Upgrade linux-image-5.4.0-1145-gcp-fipsUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-6.8.0-1020-azureUpgrade linux-image-5.4.0-1088-ibmUpgrade linux-image-5.15.0-135-genericUpgrade linux-image-5.15.0-1021-nvidia-tegra-igxUpgrade linux-image-4.15.0-235-genericUpgrade linux-image-3.13.0-204-lowlatencyUpgrade linux-image-lowlatency-lts-xenialUpgrade linux-image-5.4.0-1090-ibmUpgrade linux-image-generic-64kUpgrade linux-image-6.8.0-1019-gcpUpgrade linux-image-nvidia-tegraUpgrade linux-image-5.15.0-135-generic-64kUpgrade linux-image-5.15.0-1080-awsUpgrade linux-image-6.8.0-1020-awsUpgrade linux-image-aws-lts-20.04Upgrade linux-image-aws-lts-22.04Upgrade linux-image-5.15.0-135-lowlatencyUpgrade linux-image-5.15.0-1076-kvmUpgrade linux-image-bluefieldUpgrade linux-image-5.4.0-1129-kvmUpgrade linux-image-lowlatency-64kUpgrade linux-image-nvidiaUpgrade linux-image-gke-5.15Upgrade linux-image-5.15.0-1080-aws-fipsUpgrade linux-image-generic-hwe-16.04Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-5.15.0-136-generic | Dec 13, 2024 | Aug 26, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jan 20, 2025 | Aug 26, 2024 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub