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

request_irq admits duplicate (irq,dev_id) registration and its failure path releases/NULLs pdev-global IRQ state owned by live registrations β€” armed handler left on released resource/MSI vectors (interrupt-time UAF), orphaned handler with dangling dev_id, NULL-resource crash on retry, double-release at teardown

Summary

No duplicate admission control + the error path destroys pdev-global state owned by the winner (resource, MSI vectors, _irqr=NULL): a racing drm_irq_install (the DF-5101 install-side window) turns a failed duplicate into destruction of the live registration's plumbing, or a successful duplicate into an orphaned armed handler after single uninstall - interrupt-context UAF/cross-device type confusion shape. Root/driver-context gated. Reject-duplicates + release-nothing-on-fail fix (composes with the DF-5101 lock fix).

Discussion (0)

No comments yet.

PoC verification

Evidence pack

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

Fix verification

not_testable
baseline no→ patch + rebuild →patched clean
per-fix-DF-5165

Confirmed kernel references

Detail

Evidence (decisive lines)

source trace in finding markdown

Verified recommended fix

see finding markdown

Verdict

untested (no DRM substrate on QEMU guest: request_irq cannot execute there; proven by line-level source trace)