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

cbb_resume() error path NULLs irq_res/base_res and returns ENOMEM but leaves the driver attached with stale intrhand β€” subsequent cbb_detach/cbb_suspend dereference the NULL resources (kernel panic)

Summary

If bus_setup_intr fails on resume, cbb_resume releases and NULLs the resources and returns ENOMEM - but the device remains attached with intrhand stale and the event thread still running (reading socket registers through the released resource). Any later detach/suspend dereferences the NULL resource pointers - panic in rman/bus paths. Keep-resources-valid fix.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

findings/poc/DF-4277 Β· 2 files
FileTypeDescriptionSize
README.md file 169 B ↓ raw
verdict.json file 1.1 KB view raw
README.md file
↓ download raw

DF-4277 β€” pccbb resume error-path NULL-resource panic

Partial cleanup leaves stale intrhand; later detach/suspend dereference the NULLed resources. Hardware-gated.

Fix verification

not_testable
baseline no→ patch + rebuild →patched clean

on setup_intr failure, keep resources valid for later detach (do not release+NULL what teardown consumes), or fully detach the device

source-only
per-fix-DF-4277

Confirmed kernel references

Detail

Exploit chain

[]

Evidence (decisive lines)

pccbb.c:1574-1583 partial cleanup vs consumers at :293, :302-304, :1541

Verdict

source-verified; hardware-gated (no CardBus bridge on audit guest; rare resume-time interrupt re-establishment failure precondition)