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

bxt_exec_gpio: function-static bxt_gpio_table caches devm-allocated gpio_descs across device unbind/rebind β€” use-after-free on gpiod_set_value

Summary

The static table caches descriptors owned by the drm device and freed by devres at unbind; never cleared on detach, so after a rebind the first panel-enable calls gpiod_set_value on stale freed descriptors - UAF write (flags/value), exploitable if the chunk is reclaimed. BXT + rebind cycle precondition; speculative per discipline. Per-device-table fix.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

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

Fix verification

not_testable
baseline no→ patch + rebuild →patched clean

not_testable: hardware-gated (no Intel DSI panel / no mpt HBA on guest)

fix in finding markdown
per-fix-DF-4628

Confirmed kernel references

Detail

Exploit chain

[]

Evidence (decisive lines)

Function-static gpio table caches devm descriptors across device unbind/rebind with no invalidation. Per-device-table + clear-on-forget fix.

Verdict

not_run: BXT-class hardware + unbind/rebind cycle needed; speculative per pass-2 discipline