In the Linux kernel, the following vulnerability has been resolved:
capabilities: fix undefined behavior in bit shift for CAPTOMASK
Shifting signed 32-bit value by 31 bits is undefined, so changing significant bit to unsigned. The UBSAN warning calltrace like below:
UBSAN: shift-out-of-bounds in security/commoncap.c:1252:2 left shift of 1 by 31 places cannot be represented in type 'int' Call Trace: <TASK> dumpstacklvl+0x7d/0xa5 dumpstack+0x15/0x1b ubsanepilogue+0xe/0x4e _ubsanhandleshiftoutofbounds+0x1e7/0x20c captaskprctl+0x561/0x6f0 securitytaskprctl+0x5a/0xb0 _x64sysprctl+0x61/0x8f0 dosyscall64+0x58/0x80 entrySYSCALL64after_hwframe+0x63/0xcd </TASK>