CVE-2023-54120

Summary

In the Linux kernel, the following vulnerability has been resolved:

Bluetooth: Fix race condition in hidp_session_thread

There is a potential race condition in hidp_session_thread that may lead to use-after-free. For instance, the timer is active while hidp_del_timer is called in hidp_session_thread(). After hidp_session_put, then 'session' will be freed, causing kernel panic when hidp_idle_timeout is running.

The solution is to use del_timer_sync instead of del_timer.

Here is the call trace:

? hidp_session_probe+0x780/0x780 call_timer_fn+0x2d/0x1e0 __run_timers.part.0+0x569/0x940 hidp_session_probe+0x780/0x780 call_timer_fn+0x1e0/0x1e0 ktime_get+0x5c/0xf0 lapic_next_deadline+0x2c/0x40 clockevents_program_event+0x205/0x320 run_timer_softirq+0xa9/0x1b0 __do_softirq+0x1b9/0x641 __irq_exit_rcu+0xdc/0x190 irq_exit_rcu+0xe/0x20 sysvec_apic_timer_interrupt+0xa1/0xc0

Affected Software

VendorProductVersion RangeStatus
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 152f47bd6b995e0e98c85672f6d19894bc287ef2affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 5f3d214d19899183d4e0cce7552998262112e4abaffected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 8a99e6200c38b78a45dcd12a6bdc43fdf4dc36beaffected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < f7ec5ca433ceead8d9d78fd2febff094f289441daffected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 0efb276d5848a3accc37c6f41b85e442c4768169affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < f6719fd8f409fa1da8dc956e93822d25e1e8b360affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 248af9feca062a4ca9c3f2ccf67056c8a5eb817faffected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < c95930abd687fcd1aa040dc4fe90dff947916460affected
LinuxLinux2.6.12affected
LinuxLinux0 < 2.6.12unaffected
LinuxLinux4.14.313 <= 4.14.*unaffected
LinuxLinux4.19.281 <= 4.19.*unaffected
LinuxLinux5.4.241 <= 5.4.*unaffected
LinuxLinux5.10.178 <= 5.10.*unaffected
LinuxLinux5.15.108 <= 5.15.*unaffected
LinuxLinux6.1.25 <= 6.1.*unaffected
LinuxLinux6.2.12 <= 6.2.*unaffected
LinuxLinux6.3 <= *unaffected

Weaknesses

References