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.
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linuxUpgrade linux-6.1 | Nov 13, 2025 | Nov 13, 2025 |
| Suse | — | Upgrade kernel-defaultUpgrade reiserfs-kmp-defaultUpgrade kernel-default-baseUpgrade kernel-obs-buildUpgrade kernel-64kb-develUpgrade kernel-develUpgrade kernel-zfcpdumpUpgrade kernel-sourceUpgrade kernel-64kbUpgrade kernel-default-develUpgrade kernel-symsUpgrade kernel-default-extraUpgrade kernel-docsUpgrade kernel-macros | Dec 5, 2025 | Nov 11, 2025 |
| Ubuntu | — | Upgrade linux-image-fips-6.8Upgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-raspi-5.15Upgrade linux-image-oem-22.04cUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-gcp-fips-6.8Upgrade linux-image-6.8.0-1048-gkeUpgrade linux-image-5.15.0-1095-intel-iotgUpgrade linux-image-gkeopUpgrade linux-image-aws-6.8Upgrade linux-image-intelUpgrade linux-image-5.15.0-170-genericUpgrade linux-image-virtualUpgrade linux-image-6.8.0-106-generic-64kUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-oem-20.04dUpgrade linux-image-lowlatencyUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-gke-5.15Upgrade linux-image-aws-5.15Upgrade linux-image-6.8.0-1052-gcp-64kUpgrade linux-image-6.8.0-1049-ibmUpgrade linux-image-6.8.0-1047-oracleUpgrade linux-image-5.15.0-1109-azureUpgrade linux-image-5.15.0-1100-awsUpgrade linux-image-5.15.0-1099-realtimeUpgrade linux-image-5.15.0-1083-gkeopUpgrade linux-image-gcpUpgrade linux-image-intel-iotg-5.15Upgrade linux-image-5.15.0-1097-raspiUpgrade linux-image-6.8.0-106-fipsUpgrade linux-image-aws-64kUpgrade linux-image-raspi-6.8Upgrade linux-image-azure-6.8Upgrade linux-image-genericUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-intel-iotgUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-6.8.0-1049-nvidia-lowlatency-64kUpgrade linux-image-nvidia-5.15Upgrade linux-image-realtime-6.8.1Upgrade linux-image-realtime-5.15Upgrade linux-image-6.8.0-106-lowlatency-64kUpgrade linux-image-5.15.0-1052-nvidia-tegra-rtUpgrade linux-image-xilinx-6.8Upgrade linux-image-oracle-6.8Upgrade linux-image-oem-22.04aUpgrade linux-image-nvidia-tegraUpgrade linux-image-gkeop-5.15Upgrade linux-image-generic-64kUpgrade linux-image-azure-5.15Upgrade linux-image-azureUpgrade linux-image-lowlatency-64kUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-generic-lpaeUpgrade linux-image-fips-5.15Upgrade linux-image-azure-fips-5.15Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-realtime-hwe-22.04Upgrade linux-image-nvidia-tegra-5.15Upgrade linux-image-nvidiaUpgrade linux-image-generic-lpae-5.15Upgrade linux-image-6.8.0-1049-nvidia-64kUpgrade linux-image-5.15.0-170-generic-lpaeUpgrade linux-image-5.15.0-1064-xilinx-zynqmpUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-oem-22.04Upgrade linux-image-oem-20.04cUpgrade linux-image-nvidia-64kUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-azure-lts-22.04Upgrade linux-image-6.8.1-1045-realtimeUpgrade linux-image-6.8.0-1052-azure-fipsUpgrade linux-image-5.15.0-1095-nvidia-lowlatencyUpgrade linux-image-xilinxUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-5.15.0-1109-azure-fipsUpgrade linux-image-6.8.0-1049-nvidiaUpgrade linux-image-5.15.0-1094-ibmUpgrade linux-image-5.15.0-1110-azureUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-lowlatency-5.15Upgrade linux-image-kvm-5.15Upgrade linux-image-6.8.0-1051-azureUpgrade linux-image-5.15.0-170-lowlatencyUpgrade linux-image-5.15.0-1041-nvidia-tegra-igx-rtUpgrade linux-image-6.8.0-1049-nvidia-lowlatencyUpgrade linux-image-nvidia-tegra-rt-5.15Upgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-5.15.0-1041-nvidia-tegra-igxUpgrade linux-image-6.8.0-1050-aws-64kUpgrade linux-image-oem-20.04bUpgrade linux-image-5.15.0-1096-gkeUpgrade linux-image-lowlatency-64k-5.15Upgrade linux-image-oem-20.04Upgrade linux-image-oem-22.04dUpgrade linux-image-6.8.0-1035-gkeopUpgrade linux-image-5.15.0-1100-aws-fipsUpgrade linux-image-gkeop-6.8Upgrade linux-image-azure-fips-6.8Upgrade linux-image-gkeUpgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-raspi-realtimeUpgrade linux-image-gke-6.8Upgrade linux-image-6.8.0-2040-raspi-realtimeUpgrade linux-image-6.8.0-1029-xilinxUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-oracle-64kUpgrade linux-image-nvidia-tegra-igx-5.15Upgrade linux-image-gke-64k-6.8Upgrade linux-image-5.15.0-170-lowlatency-64kUpgrade linux-image-azure-cvmUpgrade linux-image-gcp-fipsUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-lowlatency-6.8Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-ibm-5.15Upgrade linux-image-5.15.0-1100-aws-64kUpgrade linux-image-6.8.0-1048-gke-64kUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-6.8.0-1050-raspiUpgrade linux-image-xilinx-zynqmp-5.15Upgrade linux-image-ibm-classicUpgrade linux-image-aws-fips-5.15Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-aws-fipsUpgrade linux-image-generic-64k-6.8Upgrade linux-image-aws-fips-6.8Upgrade linux-image-aws-lts-24.04Upgrade linux-image-azure-lts-24.04Upgrade linux-image-gcp-64kUpgrade linux-image-gcp-5.15Upgrade linux-image-aws-64k-5.15Upgrade linux-image-aws-64k-6.8Upgrade linux-image-5.15.0-1100-gcpUpgrade linux-image-gke-64kUpgrade linux-image-intel-iot-realtime-5.15Upgrade linux-image-5.15.0-1052-nvidia-tegraUpgrade linux-image-5.15.0-1100-gcp-fipsUpgrade linux-image-6.8.0-106-lowlatencyUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-gcp-fips-5.15Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-virtual-6.8Upgrade linux-image-oem-22.04bUpgrade linux-image-nvidia-tegra-igx-rt-5.15Upgrade linux-image-raspi-nolpaeUpgrade linux-image-generic-64k-5.15Upgrade linux-image-kvmUpgrade linux-image-5.15.0-170-fipsUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-nvidia-lowlatency-5.15Upgrade linux-image-6.8.0-1050-aws-fipsUpgrade linux-image-6.8.0-106-genericUpgrade linux-image-5.15.0-1092-intel-iot-realtimeUpgrade linux-image-gcp-6.8Upgrade linux-image-generic-5.15Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-virtual-5.15Upgrade linux-image-fipsUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-6.8.0-1052-gcpUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-5.15.0-1097-oracleUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-aws-lts-22.04Upgrade linux-image-5.15.0-1092-kvmUpgrade linux-image-azure-fipsUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-oracleUpgrade linux-image-realtimeUpgrade linux-image-ibm-6.8Upgrade linux-image-nvidia-tegra-igxUpgrade linux-image-raspiUpgrade linux-image-generic-6.8Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-awsUpgrade linux-image-6.8.0-1050-awsUpgrade linux-image-nvidia-6.8Upgrade linux-image-6.8.0-1052-gcp-fipsUpgrade linux-image-oracle-5.15Upgrade linux-image-5.15.0-1095-nvidiaUpgrade linux-image-5.15.0-170-generic-64kUpgrade linux-image-ibmUpgrade linux-image-6.8.0-1047-oracle-64k | 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 |
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