DF-5588 / manifest.json
{ "finding_id": "DF-5588", "title": "sdt_probe() accepts hint.acpi.0.rsdp with zero validation - total-acceptance injection vector for the crafted-ACPI family and one-line boot brick", "verdict": "reproduced", "impact": "panic", "confidence": "certain", "reproduce": { "build": "cd findings/poc/DF-5588 && ./build.sh", "run": "vm.sh reset with-src; vm.sh run_root 'printf \"hint.acpi.0.rsdp=0x40000000\\nboot_verbose=YES\\n\" >> /boot/loader.conf; sync'; vm.sh down; QEMU_EXTRA=\"-device loader,file=$PWD/nosig_bsp_omit.bin,addr=0x40000000,force-raw=on\" vm.sh up 150; vm.sh log", "expected": "R2: 'ACPI SDT: RSDP in kenv hint' + madt_lapic_probe lapic_count=3 with RSDP signature de ad be ef de ad be ef (acceptance proof); R3: panic: assertion \"arg.bsp_found\" in madt_lapic_pass2 through the INVALID-signature RSDP; R4 (hint=0x800000000000, no blob): panic: vm_fault: fault on nofault entry right after 'ACPI SDT: RSDP in kenv hint'" }, "kernel_refs": [ "sys/platform/pc64/acpica/acpi_sdt.c:71", "sys/platform/pc64/acpica/acpi_sdt.c:109", "sys/platform/pc64/acpica/acpi_sdt.c:120", "sys/platform/pc64/x86_64/pmap.c:6192", "sys/platform/pc64/x86_64/pmap.c:6201", "sys/platform/pc64/acpica/OsdEnvironment.c:72", "sys/platform/pc64/acpica/acpi_madt.c:375" ], "fix_validated": true, "artifacts": [ "gen_rsdp_inject.py", "valid_control.bin", "nosig_control.bin", "nosig_bsp_omit.bin", "build.sh", "run.sh", "run.nosig_control.boot.log", "run.nosig_bsp_omit.boot.log", "run.bogus_addr.panic.log", "panic.txt", "fix_run.log", "fix_build.log", "fix.diff", "VERDICT.md", "env.txt", "manifest.json", "verdict.json" ] } |