In the Linux kernel, the following vulnerability has been resolved: ACPI: APEI: Fix integer overflow in ghesestatuspoolinit() Change numghes from int to unsigned int, preventing an overflow and causing subsequent vmalloc() to fail. The overflow happens in ghesestatuspoolinit() when calculating len during execution of the statement below as both multiplication operands here are signed int: len += (numghes * GHESESOURCEPREALLOCMAXSIZE); The following call trace is observed because of this bug: [ 9.317108] swapper/0: vmalloc error: size 18446744071562596352, exceeds total pages, mode:0xcc0(GFPKERNEL), nodemask=(null),cpuset=/,memsallowed=0-1 [ 9.317131] Call Trace: [ 9.317134] <TASK> [ 9.317137] dumpstacklvl+0x49/0x5f [ 9.317145] dumpstack+0x10/0x12 [ 9.317146] warnalloc.cold+0x7b/0xdf [ 9.317150] ? _deviceattach+0x16a/0x1b0 [ 9.317155] _vmallocnoderange+0x702/0x740 [ 9.317160] ? deviceadd+0x17f/0x920 [ 9.317164] ? devsetname+0x53/0x70 [ 9.317166] ? platformdeviceadd+0xf9/0x240 [ 9.317168] _vmallocnode+0x49/0x50 [ 9.317170] ? ghesestatuspoolinit+0x43/0xa0 [ 9.317176] vmalloc+0x21/0x30 [ 9.317177] ghesestatuspoolinit+0x43/0xa0 [ 9.317179] acpihestinit+0x129/0x19c [ 9.317185] acpiinit+0x434/0x4a4 [ 9.317188] ? acpisleepprocinit+0x2a/0x2a [ 9.317190] dooneinitcall+0x48/0x200 [ 9.317195] kernelinitfreeable+0x221/0x284 [ 9.317200] ? restinit+0xe0/0xe0 [ 9.317204] kernelinit+0x1a/0x130 [ 9.317205] retfromfork+0x22/0x30 [ 9.317208] </TASK> [ rjw: Subject and changelog edits ]