CVE-2026-64455 PUBLISHED

USB: chaoskey: Fix slab-use-after-free in chaoskey_release()

Assigner: Linux
Reserved: 19.07.2026 Published: 25.07.2026 Updated: 25.07.2026

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

USB: chaoskey: Fix slab-use-after-free in chaoskey_release()

The chaoskey driver has a use-after-free bug in its release routine. If the user closes the device file after the USB device has been unplugged, a debugging log statement will try to access the usb_interface structure after it has been deallocated:

<pre>BUG: KASAN: slab-use-after-free in dev_driver_string (drivers/base/core.c:2406) Read of size 8 at addr ffff888168e8a0b8 by task chaoskey_raw_re/10106 Hardware name: QEMU Ubuntu 24.04 PC v2 (i440FX + PIIX, arch_caps fix, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 Call Trace: <TASK> dump_stack_lvl (lib/dump_stack.c:94 lib/dump_stack.c:120) print_report (mm/kasan/report.c:378 mm/kasan/report.c:482) kasan_report (mm/kasan/report.c:595) dev_driver_string (drivers/base/core.c:2406) __dynamic_dev_dbg (lib/dynamic_debug.c:906) chaoskey_release (drivers/usb/misc/chaoskey.c:323) __fput (fs/file_table.c:510) fput_close_sync (fs/file_table.c:615) __x64_sys_close (fs/open.c:1507 fs/open.c:1492 fs/open.c:1492) do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) </pre>

The driver's last reference to the interface structure is dropped in the chaoskey_free() routine, so the code must not use the interface -- even in a debugging statement -- after that routine returns. (Exception: If we know that another reference is held by someone else, such as the device core while the disconnect routine runs, there's no problem. Thanks to Johan Hovold for pointing this out.)

Since the bad access is part of an unimportant debugging statement, we can fix the problem simply by removing the whole statement.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 66e3e591891da9899a8990792da080432531ffd4 to fe7a0f4be283b40dd592540027279735120d0d6f (excl.)
  • affected from 66e3e591891da9899a8990792da080432531ffd4 to 5ec61fbef9ec5635c492ae63dfb5d13f2bdf1023 (excl.)
  • affected from 66e3e591891da9899a8990792da080432531ffd4 to f3e409476ad0703c54c14f245e4e143c8124e1bd (excl.)
  • affected from 66e3e591891da9899a8990792da080432531ffd4 to 6c82f88bc7a8458d5c60f9b354c4d32d233f0cac (excl.)
  • affected from 66e3e591891da9899a8990792da080432531ffd4 to 3ad5fbcced4e9c2b0fee3c1b76289a147fc35b89 (excl.)
  • affected from 66e3e591891da9899a8990792da080432531ffd4 to 2a52d55c86a429dac47886b8424e67f90b001e67 (excl.)
  • affected from 66e3e591891da9899a8990792da080432531ffd4 to 8f50613bff228272577893aa10a346a2f3063e49 (excl.)
  • affected from 66e3e591891da9899a8990792da080432531ffd4 to abf76d3239dee97b66e7241ad04811f1ce562e28 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 4.1 is affected
  • unaffected from 0 to 4.1 (excl.)
  • unaffected from 5.10.261 to 5.10.* (incl.)
  • unaffected from 5.15.212 to 5.15.* (incl.)
  • unaffected from 6.1.178 to 6.1.* (incl.)
  • unaffected from 6.6.145 to 6.6.* (incl.)
  • unaffected from 6.12.96 to 6.12.* (incl.)
  • unaffected from 6.18.39 to 6.18.* (incl.)
  • unaffected from 7.1.4 to 7.1.* (incl.)
  • unaffected from 7.2-rc3 to * (incl.)

References