In the Linux kernel, the following vulnerability has been resolved:
media: i2c: tc358743: Fix use-after-free bugs caused by orphan timer in probe
The state->timer is a cyclic timer that schedules work_i2c_poll and delayed_work_enable_hotplug, while rearming itself. Using timer_delete() fails to guarantee the timer isn't still running when destroyed, similarly cancel_delayed_work() cannot ensure delayed_work_enable_hotplug has terminated if already executing. During probe failure after timer initialization, these may continue running as orphans and reference the already-freed tc358743_state object through tc358743_irq_poll_timer.
The following is the trace captured by KASAN.
BUG: KASAN: slab-use-after-free in __run_timer_base.part.0+0x7d7/0x8c0 Write of size 8 at addr ffff88800ded83c8 by task swapper/1/0 ... Call Trace: <IRQ> dump_stack_lvl+0x55/0x70 print_report+0xcf/0x610 ? __pfx_sched_balance_find_src_group+0x10/0x10 ? __run_timer_base.part.0+0x7d7/0x8c0 kasan_report+0xb8/0xf0 ? __run_timer_base.part.0+0x7d7/0x8c0 __run_timer_base.part.0+0x7d7/0x8c0 ? rcu_sched_clock_irq+0xb06/0x27d0 ? __pfx___run_timer_base.part.0+0x10/0x10 ? try_to_wake_up+0xb15/0x1960 ? tmigr_update_events+0x280/0x740 ? _raw_spin_lock_irq+0x80/0xe0 ? __pfx__raw_spin_lock_irq+0x10/0x10 tmigr_handle_remote_up+0x603/0x7e0 ? __pfx_tmigr_handle_remote_up+0x10/0x10 ? sched_balance_trigger+0x98/0x9f0 ? sched_tick+0x221/0x5a0 ? _raw_spin_lock_irq+0x80/0xe0 ? __pfx__raw_spin_lock_irq+0x10/0x10 ? tick_nohz_handler+0x339/0x440 ? __pfx_tmigr_handle_remote_up+0x10/0x10 __walk_groups.isra.0+0x42/0x150 tmigr_handle_remote+0x1f4/0x2e0 ? __pfx_tmigr_handle_remote+0x10/0x10 ? ktime_get+0x60/0x140 ? lapic_next_event+0x11/0x20 ? clockevents_program_event+0x1d4/0x2a0 ? hrtimer_interrupt+0x322/0x780 handle_softirqs+0x16a/0x550 irq_exit_rcu+0xaf/0xe0 sysvec_apic_timer_interrupt+0x70/0x80 </IRQ> ...
Allocated by task 141: kasan_save_stack+0x24/0x50 kasan_save_track+0x14/0x30 __kasan_kmalloc+0x7f/0x90 __kmalloc_node_track_caller_noprof+0x198/0x430 devm_kmalloc+0x7b/0x1e0 tc358743_probe+0xb7/0x610 i2c_device_probe+0x51d/0x880 really_probe+0x1ca/0x5c0 __driver_probe_device+0x248/0x310 driver_probe_device+0x44/0x120 __device_attach_driver+0x174/0x220 bus_for_each_drv+0x100/0x190 __device_attach+0x206/0x370 bus_probe_device+0x123/0x170 device_add+0xd25/0x1470 i2c_new_client_device+0x7a0/0xcd0 do_one_initcall+0x89/0x300 do_init_module+0x29d/0x7f0 load_module+0x4f48/0x69e0 init_module_from_file+0xe4/0x150 idempotent_init_module+0x320/0x670 __x64_sys_finit_module+0xbd/0x120 do_syscall_64+0xac/0x280 entry_SYSCALL_64_after_hwframe+0x77/0x7f
Freed by task 141: kasan_save_stack+0x24/0x50 kasan_save_track+0x14/0x30 kasan_save_free_info+0x3a/0x60 __kasan_slab_free+0x3f/0x50 kfree+0x137/0x370 release_nodes+0xa4/0x100 devres_release_group+0x1b2/0x380 i2c_device_probe+0x694/0x880 really_probe+0x1ca/0x5c0 __driver_probe_device+0x248/0x310 driver_probe_device+0x44/0x120 __device_attach_driver+0x174/0x220 bus_for_each_drv+0x100/0x190 __device_attach+0x206/0x370 bus_probe_device+0x123/0x170 device_add+0xd25/0x1470 i2c_new_client_device+0x7a0/0xcd0 do_one_initcall+0x89/0x300 do_init_module+0x29d/0x7f0 load_module+0x4f48/0x69e0 init_module_from_file+0xe4/0x150 idempotent_init_module+0x320/0x670 __x64_sys_finit_module+0xbd/0x120 do_syscall_64+0xac/0x280 entry_SYSCALL_64_after_hwframe+0x77/0x7f ...
Replace timer_delete() with timer_delete_sync() and cancel_delayed_work() with cancel_delayed_work_sync() to ensure proper termination of timer and work items before resource cleanup.
This bug was initially identified through static analysis. For reproduction and testing, I created a functional emulation of the tc358743 device via a kernel module and introduced faults through the debugfs interface.
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linuxUpgrade linux-6.1 | Nov 13, 2025 | Nov 13, 2025 |
| Suse | — | Upgrade kernel-default-baseUpgrade kernel-obs-buildUpgrade kernel-defaultUpgrade kernel-develUpgrade kernel-64kb-develUpgrade reiserfs-kmp-defaultUpgrade kernel-64kbUpgrade kernel-macrosUpgrade kernel-sourceUpgrade kernel-zfcpdumpUpgrade kernel-docsUpgrade kernel-default-extraUpgrade kernel-default-develUpgrade kernel-syms | Dec 5, 2025 | Nov 11, 2025 |
| Ubuntu | — | Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-azure-6.8Upgrade linux-image-generic-lpae-5.15Upgrade linux-image-intel-iotgUpgrade linux-image-5.15.0-170-generic-lpaeUpgrade linux-image-nvidiaUpgrade linux-image-oem-20.04cUpgrade linux-image-6.8.0-1052-azure-fipsUpgrade linux-image-nvidia-64kUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-oem-20.04bUpgrade linux-image-5.15.0-1064-xilinx-zynqmpUpgrade linux-image-generic-lpaeUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-5.15.0-1095-nvidia-lowlatencyUpgrade linux-image-azure-lts-22.04Upgrade linux-image-6.8.1-1045-realtimeUpgrade linux-image-6.8.0-1035-gkeopUpgrade linux-image-6.8.0-2040-raspi-realtimeUpgrade linux-image-raspi-realtimeUpgrade linux-image-gcp-64k-6.8Upgrade linux-image-oem-22.04dUpgrade linux-image-oem-22.04Upgrade linux-image-5.15.0-1094-ibmUpgrade linux-image-5.15.0-1109-azure-fipsUpgrade linux-image-intel-iotg-5.15Upgrade linux-image-raspi-realtime-6.8Upgrade linux-image-5.15.0-1100-aws-fipsUpgrade linux-image-6.8.0-1029-xilinxUpgrade linux-image-azure-fips-6.8Upgrade linux-image-gke-6.8Upgrade linux-image-gkeop-6.8Upgrade linux-image-lowlatency-64k-5.15Upgrade linux-image-oem-22.04cUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-nvidia-tegra-rt-5.15Upgrade linux-image-oem-20.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-6.8.0-1047-oracleUpgrade linux-image-6.8.0-1051-azureUpgrade linux-image-virtualUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-5.15.0-1109-azureUpgrade linux-image-5.15.0-170-genericUpgrade linux-image-6.8.0-1049-ibmUpgrade linux-image-xilinxUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-5.15.0-1096-gkeUpgrade linux-image-5.15.0-1083-gkeopUpgrade linux-image-5.15.0-1099-realtimeUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-oem-20.04dUpgrade linux-image-5.15.0-1100-awsUpgrade linux-image-5.15.0-1041-nvidia-tegra-igx-rtUpgrade linux-image-aws-6.8Upgrade linux-image-intelUpgrade linux-image-gke-5.15Upgrade linux-image-intel-iot-realtimeUpgrade linux-image-6.8.0-1052-gcp-64kUpgrade linux-image-6.8.0-106-generic-64kUpgrade linux-image-aws-5.15Upgrade linux-image-lowlatencyUpgrade linux-image-oracle-64kUpgrade linux-image-gkeUpgrade linux-image-nvidia-tegra-igx-5.15Upgrade linux-image-5.15.0-1052-nvidia-tegra-rtUpgrade linux-image-gkeopUpgrade linux-image-azureUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-5.15.0-170-lowlatencyUpgrade linux-image-6.8.0-106-lowlatency-64kUpgrade linux-image-oracle-64k-6.8Upgrade linux-image-xilinx-6.8Upgrade linux-image-6.8.0-1048-gkeUpgrade linux-image-generic-64kUpgrade linux-image-gkeop-5.15Upgrade linux-image-oem-22.04aUpgrade linux-image-fips-6.8Upgrade linux-image-5.15.0-1095-intel-iotgUpgrade linux-image-nvidia-tegraUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-oracle-6.8Upgrade linux-image-5.15.0-1110-azureUpgrade linux-image-6.8.0-1049-nvidiaUpgrade linux-image-azure-5.15Upgrade linux-image-gcp-fips-6.8Upgrade linux-image-raspi-5.15Upgrade linux-image-fips-5.15Upgrade linux-image-6.8.0-1049-nvidia-lowlatency-64kUpgrade linux-image-nvidia-5.15Upgrade linux-image-nvidia-tegra-5.15Upgrade linux-image-5.15.0-1041-nvidia-tegra-igxUpgrade linux-image-6.8.0-1049-nvidia-64kUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-gcpUpgrade linux-image-6.8.0-1050-aws-64kUpgrade linux-image-genericUpgrade linux-image-azure-fips-5.15Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-realtime-hwe-22.04Upgrade linux-image-gke-64k-6.8Upgrade linux-image-kvm-5.15Upgrade linux-image-raspi-6.8Upgrade linux-image-5.15.0-1097-raspiUpgrade linux-image-6.8.0-1049-nvidia-lowlatencyUpgrade linux-image-6.8.0-106-fipsUpgrade linux-image-aws-64kUpgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-lowlatency-5.15Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-realtime-5.15Upgrade linux-image-realtime-6.8.1Upgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-ibm-6.8Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-oem-22.04bUpgrade linux-image-gke-64kUpgrade linux-image-generic-5.15Upgrade linux-image-aws-fipsUpgrade linux-image-6.8.0-106-genericUpgrade linux-image-6.8.0-1050-aws-fipsUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-ibm-5.15Upgrade linux-image-gcp-lts-22.04Upgrade linux-image-6.8.0-1050-raspiUpgrade linux-image-6.8.0-1048-gke-64kUpgrade linux-image-5.15.0-1100-aws-64kUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-azure-fipsUpgrade linux-image-realtimeUpgrade linux-image-oracleUpgrade linux-image-ibmUpgrade linux-image-kvmUpgrade linux-image-gcp-5.15Upgrade linux-image-6.8.0-106-lowlatencyUpgrade linux-image-5.15.0-170-fipsUpgrade linux-image-5.15.0-1100-gcp-fipsUpgrade linux-image-5.15.0-1052-nvidia-tegraUpgrade linux-image-raspi-nolpaeUpgrade linux-image-gcp-6.8Upgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-gcp-fips-5.15Upgrade linux-image-nvidia-tegra-rtUpgrade linux-image-gcp-64kUpgrade linux-image-aws-lts-24.04Upgrade linux-image-aws-64k-6.8Upgrade linux-image-aws-64k-5.15Upgrade linux-image-6.8.0-1047-oracle-64kUpgrade linux-image-5.15.0-1092-kvmUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-generic-64k-6.8Upgrade linux-image-5.15.0-170-generic-64kUpgrade linux-image-azure-lts-24.04Upgrade linux-image-intel-iot-realtime-5.15Upgrade linux-image-awsUpgrade linux-image-gcp-fipsUpgrade linux-image-azure-cvmUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-6.8.0-1050-awsUpgrade linux-image-5.15.0-170-lowlatency-64kUpgrade linux-image-raspiUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-nvidia-6.8Upgrade linux-image-generic-6.8Upgrade linux-image-6.8.0-1052-gcp-fipsUpgrade linux-image-virtual-6.8Upgrade linux-image-aws-lts-22.04Upgrade linux-image-aws-fips-6.8Upgrade linux-image-nvidia-tegra-igx-rt-5.15Upgrade linux-image-generic-64k-5.15Upgrade linux-image-5.15.0-1097-oracleUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-fipsUpgrade linux-image-oracle-5.15Upgrade linux-image-6.8.0-1052-gcpUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-5.15.0-1095-nvidiaUpgrade linux-image-nvidia-tegra-igxUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-aws-fips-5.15Upgrade linux-image-lowlatency-6.8Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-5.15.0-1100-gcpUpgrade linux-image-nvidia-lowlatency-5.15Upgrade linux-image-5.15.0-1092-intel-iot-realtimeUpgrade linux-image-xilinx-zynqmp-5.15Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-virtual-5.15Upgrade linux-image-ibm-classic | Oct 30, 2025 | Oct 15, 2025 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Feb 9, 2026 | Oct 15, 2025 |
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