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

firmware_get() reference never released on attach-failure or detach (refcount leak)

Summary

isp_pci_attach at isp_pci.c:856/859/868: firmware_get() up to 3x, isp->isp_osinfo.fw assigned. No firmware_put() in bad: label (:969-993) or detach (:996-1032). grep firmware_put across sys/dev/disk/isp/ returns zero. Refcount grows with each kldload/kldunload cycle. Root/module loading only. Fix: firmware_put in bad: and detach.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

findings/poc/DF-1421 Β· 1 files
FileTypeDescriptionSize
VERDICT.md verdict verification verdict 839 B ↓ raw
VERDICT.md verdict verification verdict
↓ download raw

DF-1421 - Verification Verdict

Status: reproduced (reproduced=1) Impact: none Confidence: certain

Finding

firmware_get() reference never released on attach-failure or detach (refcount leak)

Source Location

sys/dev/disk/isp/isp_pci.c:856-1013

Verdict

Source-confirmed (complex fix): firmware_get() reference never released on attach-failure or detach (r. No diff in batch.

Fix Status

not_applicable: source defect confirmed; complex fix not included in batch build

Summary

isp_pci_attach at isp_pci.c:856/859/868: firmware_get() up to 3x, isp->isp_osinfo.fw assigned. No firmware_put() in bad: label (:969-993) or detach (:996-1032). grep firmware_put across sys/dev/disk/isp/ returns zero. Refcount grows with each kldload/kldunload cycle. Root/module loading only. Fix: firmware_put in bad: and detach.

Fix verification

not_testable
baseline reproduced→ patch + rebuild →patched clean

source defect confirmed; complex fix not included in batch build

source defect confirmed; complex fix not included in batch build
combined build rc=0

Confirmed kernel references

β€”

Detail

Exploit chain

none (Low severity)

Evidence (decisive lines)

Source-confirmed: isp_pci firmware_get() reference stored in isp->isp_osinfo.fw never released on attach-failure or detach, refcount leak. Complex fix. HW-gated.

Verified recommended fix

Source-confirmed: isp_pci firmware_get() reference stored in isp->isp_osinfo.fw never released on attach-failure or detach, refcount leak. Complex fix. HW-gated.

Verdict

Source-confirmed: isp_pci firmware_get() reference stored in isp->isp_osinfo.fw never released on attach-failure or detach, refcount leak. Complex fix. HW-gated.