DF-5478 / manifest.json
{ "finding_id": "DF-5478", "title": "efi_create_1t1_map(): md_pages*EFI_PAGE_SIZE wraparound passes the runtime-map guard — unbounded kmalloc(M_WAITOK) fill loop wedges boot", "verdict": "reproduced", "impact": "dos", "reproduce": { "build": "ssh to guest: cc -O2 -o df5478_wrap df5478_wrap.c (userspace model of the verbatim guard arithmetic)", "run": "./df5478_wrap", "expected": "md_pages = 2^52 (and 2^52+1): product wraps to 0/4096, guard PASSES, loop iterations 4.5e15, kmalloc > 3.69e8 GiB; controls (2^40 pages) correctly REJECTed; FIXED-guard section rejects all wrap rows" }, "kernel_refs": [ "sys/platform/pc64/x86_64/efirt.c:255", "sys/platform/pc64/x86_64/efirt.c:256", "sys/platform/pc64/x86_64/efirt.c:288", "sys/platform/pc64/x86_64/efirt.c:290", "sys/platform/pc64/x86_64/efirt.c:433", "sys/sys/efi.h:75" ], "artifacts": [ "df5478_wrap.c", "build.sh", "run.sh", "run.log", "fix.diff", "env.txt", "VERDICT.md", "manifest.json", "verdict.json" ] } |