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

cam_periph_unmapbufs silently drops copyout errors -> data loss / inconsistent result

Summary

cam_periph_unmapbufs at cam_periph.c:830 /* XXX return error */ copyout return value DISCARDED. useracc at mapmem :712/:725 verifies range at mapmem time but does not pin pages. Concurrent munmap/mprotect between mapmem and unmapbufs copyout -> partial/failed copyout silently succeeds to xpt caller. XPT_DEV_MATCH: partial matches buffer. XPT_SCSI_IO: device data not propagated, xpt reports CAM_REQ_CMP. TOCTOU on user address space (self-inflicted or via shared memory with SETUID tool). No memory corruption (bounded by b_bcount<=MAXPHYS). Fix: plumb copyout error to caller.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

findings/poc/DF-1026 Β· 1 files
FileTypeDescriptionSize
manifest.json file 390 B view raw

Fix verification

not_testable
baseline reproduced→ patch + rebuild →patched clean

proper fix needs void->int signature change; deferred

proper fix needs void->int signature change; deferred
combined build rc=0

Confirmed kernel references

β€”

Detail

Exploit chain

none (Info severity)

Evidence (decisive lines)

Source-confirmed at sys/bus/cam/cam_periph.c:829: cam_periph_unmapbufs silently drops copyout errors

Verified recommended fix

Source-confirmed at sys/bus/cam/cam_periph.c:829: cam_periph_unmapbufs silently drops copyout errors

Verdict

Source-confirmed at sys/bus/cam/cam_periph.c:829: cam_periph_unmapbufs silently drops copyout errors