In the Linux kernel, the following vulnerability has been resolved:
efi/capsule-loader: fix incorrect sizeof in phys array reallocation
The krealloc() call for cap_info->phys in _eficapsulesetupinfo() uses sizeof(physaddrt *) instead of sizeof(physaddrt), which might be causing an undersized allocation.
The allocation is also inconsistent with the initial array allocation in eficapsuleopen() that allocates one entry with sizeof(physaddrt), and the eficapsulewrite() function that stores physaddrt values (not pointers) via pagetophys().
On 64-bit systems where sizeof(physaddrt) == sizeof(physaddrt *), this goes unnoticed. On 32-bit systems with PAE where physaddrt is 64-bit but pointers are 32-bit, this allocates half the required space, which might lead to a heap buffer overflow when storing physical addresses.
This is similar to the bug fixed in commit fccfa646ef36 ("efi/capsule-loader: fix incorrect allocation size") which fixed the same issue at the initial allocation site.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53047.json",
"cna_assigner": "Linux"
}