In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: Call iso_exit() on module unload
If isoinit() has been called, isoexit() must be called on module unload. Without that, the struct proto that isoinit() registered with protoregister() becomes invalid, which could cause unpredictable problems later. In my case, with CONFIGLISTHARDENED and CONFIGBUGONDATACORRUPTION enabled, loading the module again usually triggers this BUG():
listadd corruption. next->prev should be prev (ffffffffb5355fd0), but was 0000000000000068. (next=ffffffffc0a010d0). ------------[ cut here ]------------ kernel BUG at lib/listdebug.c:29! Oops: invalid opcode: 0000 [#1] PREEMPT SMP PTI CPU: 1 PID: 4159 Comm: modprobe Not tainted 6.10.11-4+bt2-ao-desktop #1 RIP: 0010:_listaddvalidorreport+0x61/0xa0 ... _listaddvalidorreport+0x61/0xa0 protoregister+0x299/0x320 hcisockinit+0x16/0xc0 [bluetooth] btinit+0x68/0xd0 [bluetooth] _pfxbtinit+0x10/0x10 [bluetooth] dooneinitcall+0x80/0x2f0 doinitmodule+0x8b/0x230 _dosysinitmodule+0x15f/0x190 dosyscall_64+0x68/0x110 ...