In the Linux kernel, the following vulnerability has been resolved:
Revert "block, bfq: merge bfqreleaseprocessref() into bfqput_cooperator()"
This reverts commit bc3b1e9e7c50e1de0f573eea3871db61dd4787de.
The bic is associated with syncbfqq, and bfqreleaseprocessref cannot be put into bfqputcooperator.
kasan report: [ 400.347277] ================================================================== [ 400.347287] BUG: KASAN: slab-use-after-free in bicsetbfqq+0x200/0x230 [ 400.347420] Read of size 8 at addr ffff88881cab7d60 by task dockerd/5800 [ 400.347430] [ 400.347436] CPU: 24 UID: 0 PID: 5800 Comm: dockerd Kdump: loaded Tainted: G E 6.12.0 #32 [ 400.347450] Tainted: [E]=UNSIGNEDMODULE [ 400.347454] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.20192059.B64.2207280713 07/28/2022 [ 400.347460] Call Trace: [ 400.347464] <TASK> [ 400.347468] dumpstacklvl+0x5d/0x80 [ 400.347490] printreport+0x174/0x505 [ 400.347521] kasanreport+0xe0/0x160 [ 400.347541] bicsetbfqq+0x200/0x230 [ 400.347549] bfqbicupdatecgroup+0x419/0x740 [ 400.347560] bfqbiomerge+0x133/0x320 [ 400.347584] blkmqsubmitbio+0x1761/0x1e20 [ 400.347625] _submitbio+0x28b/0x7b0 [ 400.347664] submitbionoacctnocheck+0x6b2/0xd30 [ 400.347690] iomapreadahead+0x50c/0x680 [ 400.347731] readpages+0x17f/0x9c0 [ 400.347785] pagecacheraunbounded+0x366/0x4a0 [ 400.347795] filemapfault+0x83d/0x2340 [ 400.347819] _xfsfilemapfault+0x11a/0x7d0 [xfs] [ 400.349256] _dofault+0xf1/0x610 [ 400.349270] dofault+0x977/0x11a0 [ 400.349281] _handlemmfault+0x5d1/0x850 [ 400.349314] handlemmfault+0x1f8/0x560 [ 400.349324] douseraddrfault+0x324/0x970 [ 400.349337] excpagefault+0x76/0xf0 [ 400.349350] asmexcpagefault+0x26/0x30 [ 400.349360] RIP: 0033:0x55a480d77375 [ 400.349384] Code: cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc 49 3b 66 10 0f 86 ae 02 00 00 55 48 89 e5 48 83 ec 58 48 8b 10 <83> 7a 10 00 0f 84 27 02 00 00 44 0f b6 42 28 44 0f b6 4a 29 41 80 [ 400.349392] RSP: 002b:00007f18c37fd8b8 EFLAGS: 00010216 [ 400.349401] RAX: 00007f18c37fd9d0 RBX: 0000000000000000 RCX: 0000000000000000 [ 400.349407] RDX: 000055a484407d38 RSI: 000000c000e8b0c0 RDI: 0000000000000000 [ 400.349412] RBP: 00007f18c37fd910 R08: 000055a484017f60 R09: 000055a484066f80 [ 400.349417] R10: 0000000000194000 R11: 0000000000000005 R12: 0000000000000008 [ 400.349422] R13: 0000000000000000 R14: 000000c000476a80 R15: 0000000000000000 [ 400.349430] </TASK> [ 400.349452] [ 400.349454] Allocated by task 5800: [ 400.349459] kasansavestack+0x30/0x50 [ 400.349469] kasansavetrack+0x14/0x30 [ 400.349475] _kasanslaballoc+0x89/0x90 [ 400.349482] kmemcacheallocnodenoprof+0xdc/0x2a0 [ 400.349492] bfqgetqueue+0x1ef/0x1100 [ 400.349502] _bfqgetbfqqhandlesplit+0x11a/0x510 [ 400.349511] bfqinsertrequests+0xf55/0x9030 [ 400.349519] blkmqflushpluglist+0x446/0x14c0 [ 400.349527] _blkflushplug+0x27c/0x4e0 [ 400.349534] blkfinishplug+0x52/0xa0 [ 400.349540] xfsbufioapply+0x739/0xc30 [xfs] [ 400.350246] _xfsbufsubmit+0x1b2/0x640 [xfs] [ 400.350967] xfsbufreadmap+0x306/0xa20 [xfs] [ 400.351672] xfstransreadbufmap+0x285/0x7d0 [xfs] [ 400.352386] xfsimaptobp+0x107/0x270 [xfs] [ 400.353077] xfsiget+0x70d/0x1eb0 [xfs] [ 400.353786] xfslookup+0x2ca/0x3a0 [xfs] [ 400.354506] xfsvnlookup+0x14e/0x1a0 [xfs] [ 400.355197] _lookupslow+0x19c/0x340 [ 400.355204] lookuponeunlocked+0xfc/0x120 [ 400.355211] ovllookupsingle+0x1b3/0xcf0 [overlay] [ 400.355255] ovllookuplayer+0x316/0x490 [overlay] [ 400.355295] ovllookup+0x844/0x1fd0 [overlay] [ 400.355351] lookuponeqstrexcl+0xef/0x150 [ 400.355357] dounlinkat+0x22a/0x620 [ 400.355366] _x64sysunlinkat+0x109/0x1e0 [ 400.355375] dosyscall64+0x82/0x160 [ 400.355384] entrySYSCALL64afterhwframe+0x76/0x7 ---truncated---