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

Kernel heap OOB read via non-NUL-terminated NGM_TEXT_CONFIG data fed to strcmp/strtol

Summary

musycc_rcvmsg hands the raw NGM_TEXT_CONFIG payload to musycc_config without verifying NUL-termination; the ng control-socket path copies exactly len bytes into kmalloc(len+1) WITHOUT zeroing the sentinel byte, so a payload that fills the allocation is an unterminated string. musycc_config then runs unbounded strcmp/strtol over it - the walk continues into adjacent heap while zeros persist, and the creg branch reads set[5..] even when arglen==4. Distinct from DF-1499 (response-buffer overflow; this is the request-data read). memchr-NUL + sentinel-byte fix.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

findings/poc/DF-4294 Β· 2 files
FileTypeDescriptionSize
README.md file 208 B ↓ raw
verdict.json file 861 B view raw
README.md file
↓ download raw

DF-4294

Hardware-gated (musycc) finding - PoC skipped per contract. Source citations in the pass-2 result block.

Fix: memchr-NUL validation in musycc_rcvmsg + zero the sentinel byte in the ng socket path

Fix verification

not_testable
baseline no→ patch + rebuild →patched clean

memchr-NUL validation in musycc_rcvmsg + zero the sentinel byte in the ng socket path

source-only
per-fix-DF-4294

Confirmed kernel references

Detail

Exploit chain

[]

Evidence (decisive lines)

source-only; full path:line trace in pass-2 result block

Verdict

source-verified; hardware-gated (LMC1504 PCI absent on audit guest; ng control socket root-only)