β¬’ DragonFlyBSD Kernel Audit
← triage Β· dashboard
DF-4953

aibs_attach ENXIO path leaks every kmalloc'd sc_asens_* sensor array β€” newbus never calls detach after a failed attach

Summary

Arrays allocated+published before element validation; malformed-but-well-typed elements skip attachment, and the zero-sensor ENXIO exit never frees - DFly newbus never detaches a failed attach, so the leak is permanent (re-attach orphans again). Crafted-ACPI precondition (pre-boot control). Free-on-ENXIO fix.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

findings/poc/DF-4953 Β· 1 files
FileTypeDescriptionSize
verdict.json file 1.1 KB view raw

Fix verification

not_testable
per-fix-DF-4953

Confirmed kernel references

Detail

Exploit chain

crafted ?SIF packages (valid integer header, all elements malformed) -> arrays allocated+published -> zero sensors attached -> ENXIO without free -> permanent leak

Evidence (decisive lines)

findings/poc/DF-4953/ (this verdict)

Verdict

Firmware-gated (crafted ATK0110 DSDT; no ASUS node on guest): aibs_attach_sif kmallocs and publishes the per-family sensor arrays before element validation; malformed-but-well-typed elements 'continue' so no sensors attach, and when all families yield zero the ENXIO exit never frees the arrays - and DFly newbus never calls detach after a failed attach (DS_NOTPRESENT), so the allocations leak permanently (a re-attach would orphan them again). One-shot ~112B/entry leak per family; pre-boot control precondition. Free-on-ENXIO fix.