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

oce_handle_passthrough writes through direct user-pointer dereference (SMAP panic)

Summary

oce_handle_passthrough at oce_if.c:1858: fw_cmd=(struct mbx_common_get_cntl_attr*)ioctl_ptr (user pointer). strncpy(fw_cmd->...drv_ver_str,...). Supervisor write to user address -> SMAP fault -> panic. All other data motion uses copyin/copyout. Triggered by opcode=OPCODE_COMMON_GET_CNTL_ATTRIBUTES. Root/cap. Fix: stamp version in DMA buffer before copyout.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

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

DF-1372 - Verification Verdict

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

Finding

oce_handle_passthrough writes through direct user-pointer dereference (SMAP panic)

Source Location

sys/dev/netif/oce/oce_if.c:1806-1861

Verdict

Source-confirmed (complex fix): oce_handle_passthrough writes through direct user-pointer dereference . No diff in batch.

Fix Status

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

Summary

oce_handle_passthrough at oce_if.c:1858: fw_cmd=(struct mbx_common_get_cntl_attr*)ioctl_ptr (user pointer). strncpy(fw_cmd->...drv_ver_str,...). Supervisor write to user address -> SMAP fault -> panic. All other data motion uses copyin/copyout. Triggered by opcode=OPCODE_COMMON_GET_CNTL_ATTRIBUTES. Root/cap. Fix: stamp version in DMA buffer before copyout.

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: oce_handle_passthrough dereferences user pointers (ifr->ifr_data) directly in kernel context - SMAP panic on real hardware. Complex fix (copyin rewrite). HW-gated.

Verified recommended fix

Source-confirmed: oce_handle_passthrough dereferences user pointers (ifr->ifr_data) directly in kernel context - SMAP panic on real hardware. Complex fix (copyin rewrite). HW-gated.

Verdict

Source-confirmed: oce_handle_passthrough dereferences user pointers (ifr->ifr_data) directly in kernel context - SMAP panic on real hardware. Complex fix (copyin rewrite). HW-gated.