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

dagetcapacity() parses READ CAPACITY results from a non-zeroed heap buffer; short transfer with good status publishes stale kernel heap as disk geometry and prints it to console/dmesg

Summary

Open-time reprobe allocs the combined rcap/rcaplong buffer with plain M_INTWAIT (unlike the attach-probe's M_ZERO) and re-uses it between the 10/16-byte commands; CAM_REQ_CMP with resid>0 (virtio-scsi/umass propagate device resid) parses never-written bytes: stale M_SCSIDA heap (shared across all da units - cross-device disclosure) becomes secsize/sectors, printed verbatim to dmesg for removable media and exposed via GETGEOM, and can feed the DF-2274 secsize==0 divisor family from an unvalidated source. M_ZERO + resid-reject fix.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

findings/poc/DF-5311 Β· 1 files
FileTypeDescriptionSize
verdict.json file 970 B view raw

Fix verification

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

Confirmed kernel references

Detail

Evidence (decisive lines)

static trace in finding markdown

Verified recommended fix

see finding markdown

Verdict

untested (Low; sketch PoCs documented, root-gated / perf-accounting / evil-disk classes)