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)
PoC verification
Evidence pack
findings/poc/DF-4277 Β· 2 files| File | Type | Description | Size | |
|---|---|---|---|---|
| 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_testablebaseline 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)
No comments yet.