DF-4261 / verdict.json
{ "finding_id": "DF-4261", "status": "untested", "reproduced": 0, "impact": "none", "confidence": "certain", "verdict": "Code-proven boot-time resource leak: every acpi_pst_attach() error path after acpi_pst_alloc_resource() (acpi_cpu_pstate.c:500) returns without releasing the allocated _PCT control/status bus resources (and leaves cpu_next_rid consumed) -- reachable only with attacker-controlled ACPI tables, hence Info. Not runtime-verified (Info policy; the guest firmware exposes no _PSS/_PCT, confirmed live).", "exploit_chain": "", "evidence": "VERDICT.md path:line table for all 9 leaking returns; fix.diff", "kernel_refs": [ "sys/dev/acpica/acpi_cpu_pstate.c:500", "sys/dev/acpica/acpi_cpu_pstate.c:512", "sys/dev/acpica/acpi_cpu_pstate.c:547", "sys/dev/acpica/acpi_cpu_pstate.c:554", "sys/dev/acpica/acpi_cpu_pstate.c:574", "sys/dev/acpica/acpi_cpu_pstate.c:594", "sys/dev/acpica/acpi_cpu_pstate.c:601", "sys/dev/acpica/acpi_cpu_pstate.c:609", "sys/dev/acpica/acpi_cpu_pstate.c:690", "sys/dev/acpica/acpi_cpu_pstate.c:736", "sys/dev/acpica/acpi_cpu_pstate.c:1508", "sys/dev/acpica/acpi_package.c:120" ], "poc_changes": "No PoC (Info hardening finding; untested by policy)", "attempts": 0, "guest_uname": "DragonFly dfbsd 6.5-DEVELOPMENT DragonFly 6.5-DEVELOPMENT #0: Thu Jul 2 06:02:54 UTC 2026 root@dfbsd:/usr/obj/usr/src/sys/X86_64_GENERIC x86_64", "runtime_sec": 0, "guest_dirty": 0, "build_cmd": "", "run_cmd": "", "code_hash": "", "fix_status": "not_testable", "fix_baseline_reproduced": 0, "fix_patched_reproduced": 0, "fix_verdict": "fix.diff routes all post-_PCT failures through a failed: label that releases pr_res (type derived from pr_gas.SpaceId, mirroring acpi_bus_alloc_gas). Authored from line-accurate confirmation; not compile-validated and not runtime-validated (Info finding, no test surface on the guest).", "fix_evidence": "fix.diff; VERDICT.md path table", "notes": "Guest dev.cpu.0 verified live to have no P-state nodes (no _PSS/_PCT in QEMU 7.2 SSDT), so no in-guest trigger exists without custom -acpitable AML.", "recommended_fix": "Release pst_creg/pst_sreg pr_res on all acpi_pst_attach() error paths after allocation (goto-fail cleanup)" } |