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)
PoC verification
Evidence pack
findings/poc/DF-4294 Β· 2 files| File | Type | Description | Size | |
|---|---|---|---|---|
| README.md | file | 208 B | β raw | |
| verdict.json | file | 861 B | view 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_testablememchr-NUL validation in musycc_rcvmsg + zero the sentinel byte in the ng socket path
source-only
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)
No comments yet.