{"id":"DEBIAN-CVE-2025-39995","details":"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-\u003etimer 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:  \u003cIRQ\u003e  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  \u003c/IRQ\u003e ...  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.","modified":"2026-09-01T16:06:16.484579089Z","published":"2025-10-15T08:15:37.690Z","upstream":["CVE-2025-39995"],"references":[{"type":"ADVISORY","url":"https://security-tracker.debian.org/tracker/CVE-2025-39995"}],"affected":[{"package":{"name":"linux","ecosystem":"Debian:12","purl":"pkg:deb/debian/linux?arch=source&distro=bookworm"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.1.158-1"}]}],"versions":["6.1.106-1","6.1.106-2","6.1.106-3","6.1.112-1","6.1.115-1","6.1.119-1","6.1.123-1","6.1.124-1","6.1.128-1","6.1.129-1","6.1.133-1","6.1.135-1","6.1.137-1","6.1.139-1","6.1.140-1","6.1.147-1","6.1.148-1","6.1.153-1","6.1.27-1","6.1.37-1","6.1.38-1","6.1.38-2","6.1.38-2~bpo11+1","6.1.38-3","6.1.38-4","6.1.38-4~bpo11+1","6.1.52-1","6.1.55-1","6.1.55-1~bpo11+1","6.1.64-1","6.1.66-1","6.1.67-1","6.1.69-1","6.1.69-1~bpo11+1","6.1.76-1","6.1.76-1~bpo11+1","6.1.82-1","6.1.85-1","6.1.90-1","6.1.90-1~bpo11+1","6.1.94-1","6.1.94-1~bpo11+1","6.1.98-1","6.1.99-1"],"ecosystem_specific":{"urgency":"not yet assigned"},"database_specific":{"source":"https://storage.googleapis.com/osv-test-debian-osv/debian-cve-osv/DEBIAN-CVE-2025-39995.json"}},{"package":{"name":"linux","ecosystem":"Debian:13","purl":"pkg:deb/debian/linux?arch=source&distro=trixie"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.12.57-1"}]}],"versions":["6.12.38-1","6.12.41-1","6.12.43-1","6.12.43-1~bpo12+1","6.12.48-1","6.12.57-1~bpo12+1"],"ecosystem_specific":{"urgency":"not yet assigned"},"database_specific":{"source":"https://storage.googleapis.com/osv-test-debian-osv/debian-cve-osv/DEBIAN-CVE-2025-39995.json"}},{"package":{"name":"linux","ecosystem":"Debian:14","purl":"pkg:deb/debian/linux?arch=source&distro=forky"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.16.11-1"}]}],"versions":["6.12.100-1","6.12.101-1","6.12.105-1","6.12.107-1","6.12.38-1","6.12.41-1","6.12.43-1","6.12.43-1~bpo12+1","6.12.48-1","6.12.57-1","6.12.57-1~bpo12+1","6.12.63-1","6.12.63-1~bpo12+1","6.12.69-1","6.12.69-1~bpo12+1","6.12.73-1","6.12.73-1~bpo12+1","6.12.74-1","6.12.74-2","6.12.74-2~bpo12+1","6.12.85-1","6.12.85-1~bpo12+1","6.12.86-1","6.12.86-1~bpo12+1","6.12.88-1","6.12.88-1~bpo12+1","6.12.90-1","6.12.90-1~bpo12+1","6.12.90-2","6.12.90-2~bpo12+1","6.12.94-1","6.12.94-1~bpo12+1","6.12.95-1","6.12.95-1~bpo12+1","6.12.96-1","6.13.10-1~exp1","6.13.11-1~exp1","6.13.2-1~exp1","6.13.3-1~exp1","6.13.4-1~exp1","6.13.5-1~exp1","6.13.6-1~exp1","6.13.7-1~exp1","6.13.8-1~exp1","6.13.9-1~exp1","6.13~rc6-1~exp1","6.13~rc7-1~exp1","6.14.3-1~exp1","6.14.5-1~exp1","6.14.6-1~exp1","6.15-1~exp1","6.15.1-1~exp1","6.15.2-1~exp1","6.15.3-1~exp1","6.15.4-1~exp1","6.15.5-1~exp1","6.15.6-1~exp1","6.15~rc7-1~exp1","6.16-1~exp1","6.16.1-1~exp1","6.16.10-1","6.16.3-1","6.16.3-1~bpo13+1","6.16.5-1","6.16.6-1","6.16.7-1","6.16.8-1","6.16.9-1","6.16~rc7-1~exp1"],"ecosystem_specific":{"urgency":"not yet assigned"},"database_specific":{"source":"https://storage.googleapis.com/osv-test-debian-osv/debian-cve-osv/DEBIAN-CVE-2025-39995.json"}}],"schema_version":"1.9.0"}