In the Linux kernel, the following vulnerability has been resolved:
isdn: cpai: check ctr->cnr to avoid array index out of bound
The cmtpaddconnection() would add a cmtp session to a controller and run a kernel thread to process cmtp.
__module_get(THIS_MODULE);
session->task = kthread_run(cmtp_session, session, "kcmtpd_ctr_%d",
session->num);
During this process, the kernel thread would call detachcapictr() to detach a register controller. if the controller was not attached yet, detachcapictr() would trigger an array-index-out-bounds bug.
[ 46.866069][ T6479] UBSAN: array-index-out-of-bounds in drivers/isdn/capi/kcapi.c:483:21 [ 46.867196][ T6479] index -1 is out of range for type 'capictr *[32]' [ 46.867982][ T6479] CPU: 1 PID: 6479 Comm: kcmtpdctr0 Not tainted 5.15.0-rc2+ #8 [ 46.869002][ T6479] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-2 04/01/2014 [ 46.870107][ T6479] Call Trace: [ 46.870473][ T6479] dumpstacklvl+0x57/0x7d [ 46.870974][ T6479] ubsanepilogue+0x5/0x40 [ 46.871458][ T6479] _ubsanhandleoutofbounds.cold+0x43/0x48 [ 46.872135][ T6479] detachcapictr+0x64/0xc0 [ 46.872639][ T6479] cmtpsession+0x5c8/0x5d0 [ 46.873131][ T6479] ? _initwaitqueuehead+0x60/0x60 [ 46.873712][ T6479] ? cmtpaddmsgpart+0x120/0x120 [ 46.874256][ T6479] kthread+0x147/0x170 [ 46.874709][ T6479] ? setkthreadstruct+0x40/0x40 [ 46.875248][ T6479] retfrom_fork+0x1f/0x30 [ 46.875773][ T6479]