Skip to content

Commit 379e667

Browse files
committed
Merge tag 'fixes-2023-07-27' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock
Pull memblock fix from Mike Rapoport: "A call to memblock_free() or memblock_phys_free() issued after memblock data is discarded will result in use after free in memblock_isolate_range(). Avoid those issues by making sure that memblock_discard points memblock.reserved.regions back at the static buffer" * tag 'fixes-2023-07-27' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock: mm,memblock: reset memblock.reserved to system init state to prevent UAF
2 parents 657b514 + 9e46e4d commit 379e667

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

mm/memblock.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,10 @@ void __init memblock_discard(void)
374374
kfree(memblock.reserved.regions);
375375
else
376376
memblock_free_late(addr, size);
377+
/* Reset to prevent UAF from stray frees. */
378+
memblock.reserved.regions = memblock_reserved_init_regions;
379+
memblock.reserved.cnt = 1;
380+
memblock_remove_region(&memblock.reserved, 0);
377381
}
378382

379383
if (memblock.memory.regions != memblock_memory_init_regions) {

0 commit comments

Comments
 (0)