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.
| 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 python3-perfUpgrade kernel-abi-stablelistsUpgrade kernel-tools-libsUpgrade kernel-toolsUpgrade kernel | Nov 11, 2024 | Aug 26, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernel-toolsUpgrade kernel-tools-libsUpgrade kernelUpgrade bpftoolUpgrade kernel-abi-stablelistsUpgrade python3-perf | Dec 12, 2024 | Aug 26, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade kernelUpgrade python3-perfUpgrade kernel-abi-stablelistsUpgrade kernel-tools-libsUpgrade kernel-toolsUpgrade bpftool | Dec 12, 2024 | Aug 26, 2024 |
| Huawei Euleros 2_0_sp9 | — | Upgrade python3-perfUpgrade kernel-toolsUpgrade kernelUpgrade kernel-tools-libs | Nov 11, 2024 | Aug 26, 2024 |
| Suse | — | Upgrade kernel-obs-buildUpgrade kernel-rt-extraUpgrade dtb-caviumUpgrade kernel-docs-htmlUpgrade dtb-marvellUpgrade kselftests-kmp-defaultUpgrade dlm-kmp-azureUpgrade kernel-default-livepatch-develUpgrade dtb-renesasUpgrade kernel-debugUpgrade kernel-defaultUpgrade gfs2-kmp-defaultUpgrade kernel-kvmsmall-livepatch-develUpgrade cluster-md-kmp-64kbUpgrade kernel-debug-develUpgrade kernel-source-vanillaUpgrade kernel-devel-rtUpgrade cluster-md-kmp-rtUpgrade ocfs2-kmp-azureUpgrade dtb-xilinxUpgrade dtb-hisiliconUpgrade dtb-nvidiaUpgrade kernel-64kb-develUpgrade dtb-appleUpgrade dtb-sprdUpgrade dtb-armUpgrade kernel-azureUpgrade kernel-azure-extraUpgrade ocfs2-kmp-defaultUpgrade kernel-default-optionalUpgrade kernel-rt_debugUpgrade kselftests-kmp-rtUpgrade dtb-amdUpgrade kernel-64kb-optionalUpgrade gfs2-kmp-azureUpgrade kernel-64kb-extraUpgrade kernel-docsUpgrade reiserfs-kmp-defaultUpgrade dtb-socionextUpgrade kernel-source-rtUpgrade dtb-allwinnerUpgrade kernel-azure-baseUpgrade kernel-rt_debug-livepatch-develUpgrade kselftests-kmp-azureUpgrade dlm-kmp-defaultUpgrade reiserfs-kmp-rtUpgrade kernel-rt-optionalUpgrade dtb-broadcomUpgrade kernel-develUpgrade kernel-debug-vdsoUpgrade kernel-default-baseUpgrade dlm-kmp-rtUpgrade gfs2-kmp-64kbUpgrade kernel-rt-livepatchUpgrade dtb-exynosUpgrade kernel-devel-azureUpgrade dtb-lgUpgrade cluster-md-kmp-defaultUpgrade dtb-amlogicUpgrade ocfs2-kmp-rtUpgrade kernel-rt_debug-vdsoUpgrade kernel-rt-livepatch-develUpgrade kernel-azure-develUpgrade kernel-symsUpgrade dtb-apmUpgrade dlm-kmp-64kbUpgrade kernel-obs-qaUpgrade kernel-zfcpdumpUpgrade kernel-source-azureUpgrade dtb-rockchipUpgrade kernel-sourceUpgrade kernel-default-vdsoUpgrade kernel-default-livepatchUpgrade kernel-default-develUpgrade kernel-64kb-livepatch-develUpgrade ocfs2-kmp-64kbUpgrade reiserfs-kmp-azureUpgrade kernel-rt-vdsoUpgrade kernel-default-base-rebuildUpgrade kernel-debug-livepatch-develUpgrade kernel-azure-vdsoUpgrade kernel-azure-livepatch-develUpgrade dtb-mediatekUpgrade dtb-freescaleUpgrade kernel-kvmsmall-develUpgrade kernel-default-extraUpgrade kernel-syms-azureUpgrade kernel-rt-develUpgrade kernel-kvmsmall-vdsoUpgrade kernel-64kbUpgrade cluster-md-kmp-azureUpgrade dtb-qcomUpgrade dtb-alteraUpgrade kernel-syms-rtUpgrade kernel-default-manUpgrade kernel-azure-optionalUpgrade kernel-kvmsmallUpgrade kselftests-kmp-64kbUpgrade kernel-macrosUpgrade dtb-amazonUpgrade reiserfs-kmp-64kbUpgrade kernel-rt_debug-develUpgrade kernel-rtUpgrade gfs2-kmp-rt | Dec 5, 2025 | Sep 10, 2024 |
| Ubuntu | — | Upgrade linux-image-serverUpgrade linux-image-lowlatency-hwe-16.04Upgrade linux-image-4.15.0-235-lowlatencyUpgrade linux-image-gkeUpgrade linux-image-5.4.0-1147-azure-fipsUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-genericUpgrade linux-image-oem-22.04Upgrade linux-image-5.15.0-1080-realtimeUpgrade linux-image-5.15.0-1086-azureUpgrade linux-image-5.15.0-1083-azure-fipsUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-5.15.0-1079-gcp-fipsUpgrade linux-image-realtimeUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-nvidia-tegra-rtUpgrade linux-image-intelUpgrade linux-image-4.4.0-1142-kvmUpgrade linux-image-nvidia-6.8Upgrade linux-image-5.4.0-1147-azureUpgrade linux-image-gkeopUpgrade linux-image-6.8.0-1015-gkeUpgrade linux-image-6.8.0-1019-nvidia-lowlatencyUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-oem-20.04Upgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-5.15.0-1072-ibmUpgrade linux-image-6.8.0-1018-oemUpgrade linux-image-5.15.0-1073-intel-iot-realtimeUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-6.8.0-50-genericUpgrade linux-image-azureUpgrade linux-image-oem-24.04Upgrade linux-image-4.15.0-1186-azureUpgrade linux-image-raspi-nolpaeUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-5.15.0-1062-gkeopUpgrade linux-image-5.4.0-1129-raspiUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-4.4.0-266-genericUpgrade linux-image-virtual-lts-xenialUpgrade linux-image-oemUpgrade linux-image-oem-22.04cUpgrade linux-image-5.4.0-1142-awsUpgrade linux-image-gcp-fipsUpgrade linux-image-5.15.0-1033-nvidia-tegraUpgrade linux-image-azure-cvmUpgrade linux-image-aws-lts-18.04Upgrade linux-image-5.4.0-211-lowlatencyUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-generic-lts-trustyUpgrade linux-image-3.13.0-204-genericUpgrade linux-image-5.4.0-1140-oracleUpgrade linux-image-gkeop-5.15Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-5.4.0-211-generic-lpaeUpgrade linux-image-5.15.0-136-generic-64kUpgrade linux-image-aws-hweUpgrade linux-image-5.4.0-1060-xilinx-zynqmpUpgrade linux-image-6.8.0-1017-oracleUpgrade linux-image-5.15.0-1074-ibmUpgrade linux-image-oracle-lts-18.04Upgrade linux-image-5.15.0-1033-nvidia-tegra-rtUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-raspiUpgrade linux-image-6.8.0-1019-nvidia-lowlatency-64kUpgrade linux-image-oem-20.04cUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-4.4.0-266-lowlatencyUpgrade linux-image-aws-fipsUpgrade linux-image-fipsUpgrade linux-image-5.15.0-135-generic-lpaeUpgrade linux-image-5.15.0-1084-azureUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-5.15.0-1074-nvidiaUpgrade linux-image-6.8.0-1016-raspiUpgrade linux-image-5.4.0-1142-aws-fipsUpgrade linux-image-5.15.0-135-fipsUpgrade linux-image-5.4.0-1101-bluefieldUpgrade linux-image-oem-22.04dUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-6.8.0-50-generic-64kUpgrade linux-image-5.15.0-1044-xilinx-zynqmpUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1017-oracle-64kUpgrade linux-image-5.4.0-1116-fipsUpgrade linux-image-5.15.0-1075-intel-iotgUpgrade linux-image-5.15.0-1021-nvidia-tegra-igx-rtUpgrade linux-image-5.15.0-1077-oracleUpgrade linux-image-5.15.0-1081-gcpUpgrade linux-image-5.15.0-1077-gkeUpgrade linux-image-nvidia-tegra-igxUpgrade linux-image-gcpUpgrade linux-image-4.15.0-1161-kvmUpgrade linux-image-5.4.0-211-genericUpgrade linux-image-intel-iotgUpgrade linux-image-4.4.0-1179-awsUpgrade linux-image-5.4.0-1145-gcpUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-awsUpgrade linux-image-5.15.0-136-generic-lpaeUpgrade linux-image-5.15.0-1074-raspiUpgrade linux-image-5.15.0-1077-intel-iotgUpgrade linux-image-virtual-hwe-16.04Upgrade linux-image-oem-20.04dUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-6.8.0-1020-azure-fdeUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-oracleUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-generic-hwe-18.04Upgrade linux-image-nvidiaUpgrade linux-image-5.4.0-1090-ibmUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-1002-gkeopUpgrade linux-image-5.15.0-1080-aws-fipsUpgrade linux-image-6.8.0-1019-nvidia-64kUpgrade linux-image-6.8.0-1019-nvidiaUpgrade linux-image-virtualUpgrade linux-image-bluefieldUpgrade linux-image-aws-lts-22.04Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-5.15.0-136-genericUpgrade linux-image-6.8.0-50-lowlatency-64kUpgrade linux-image-generic-hwe-16.04Upgrade linux-image-kvmUpgrade linux-image-oracle-64kUpgrade linux-image-5.4.0-1048-iotUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-nvidia-tegraUpgrade linux-image-6.8.0-1017-ibmUpgrade linux-image-5.15.0-1086-azure-fdeUpgrade linux-image-gcp-lts-18.04Upgrade linux-image-gcp-lts-22.04Upgrade linux-image-ibm-lts-20.04Upgrade linux-image-lowlatencyUpgrade linux-image-azure-fipsUpgrade linux-image-4.15.0-1171-gcpUpgrade linux-image-6.8.0-50-lowlatencyUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-oem-osp1Upgrade linux-image-oem-22.04aUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.8.0-1019-gcpUpgrade linux-image-gkeop-6.8Upgrade linux-image-ibmUpgrade linux-image-5.15.0-135-generic-64kUpgrade linux-image-azure-lts-20.04Upgrade linux-image-nvidia-64kUpgrade linux-image-5.15.0-135-lowlatency-64kUpgrade linux-image-5.15.0-1080-awsUpgrade linux-image-azure-fdeUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-4.4.0-1141-awsUpgrade linux-image-azure-lts-22.04Upgrade linux-image-5.15.0-1074-nvidia-lowlatencyUpgrade linux-image-raspi2Upgrade linux-image-oem-24.04aUpgrade linux-image-ibm-classicUpgrade linux-image-generic-lpaeUpgrade linux-image-3.13.0-204-lowlatencyUpgrade linux-image-generic-64kUpgrade linux-image-6.8.0-1020-azureUpgrade linux-image-oem-22.04bUpgrade linux-image-5.15.0-1021-nvidia-tegra-igxUpgrade linux-image-lowlatency-lts-xenialUpgrade linux-image-4.15.0-235-genericUpgrade linux-image-5.4.0-1145-gcp-fipsUpgrade linux-image-5.4.0-1088-ibmUpgrade linux-image-5.15.0-135-genericUpgrade linux-image-oem-20.04bUpgrade linux-image-4.15.0-1140-oracleUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-azure-lts-18.04Upgrade linux-image-gke-5.15Upgrade linux-image-5.4.0-1129-kvmUpgrade linux-image-lowlatency-64kUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-5.15.0-1079-gcpUpgrade linux-image-5.15.0-1076-kvmUpgrade linux-image-generic-lts-xenialUpgrade linux-image-4.15.0-1178-awsUpgrade linux-image-aws-lts-20.04Upgrade linux-image-6.8.0-1020-awsUpgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-5.15.0-135-lowlatency | 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 |
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