DF-4511
acpi_wmi: _WDG result consumed unvalidated β NULL-deref boot panic on missing Return; ACPI_OBJECT union type-confusion memcpy on non-Buffer _WDG return
Summary
read_wdg_blocks evaluates _WDG and treats out.Pointer as a Buffer with no NULL/Type validation: a _WDG without Return yields AE_OK with NULL Pointer (ACPICA contract) - boot-time NULL-deref panic; an Integer/String/Package return union-confuses Length/Pointer, feeding kmalloc+memcpy with firmware-chosen length and semi-chosen source, whose contents are installed as GUID entries and printed to the world-readable /dev/wmistat. Firmware-gated (ACPI table control), inherited from FreeBSD (their _BMOF path has the fix pattern). Validate-before-use fix.
Discussion (0)
PoC verification
Evidence pack
findings/poc/DF-4511 Β· 1 files| File | Type | Description | Size | |
|---|---|---|---|---|
| verdict.json | file | 1.1 KB | view raw |
Fix verification
not_testablebaseline noβ patch + rebuild βpatched clean
not_testable
validate obj/Type/Length%sizeof before use (finding markdown diff)
per-fix-DF-4511
Confirmed kernel references
Detail
Exploit chain
[]
Evidence (decisive lines)
ACPICA permits AE_OK with NULL Pointer (nsxfeval.c:541-546) and any object type; read_wdg_blocks uses obj->Buffer immediately. Firmware-gated (ACPI table control). FreeBSD inherited the same defect (they validate in their _BMOF path - the fix pattern exists upstream).
Verdict
not_run: Low, firmware-gated, Phase V skipped per contract
No comments yet.