DF-5680 / manifest.json
{ "finding_id": "DF-5680", "file": "sys/libprop/prop_data.c", "title": "<data size=\"N\"> attribute drives unbounded kmalloc(len+1, M_PROP_DATA, M_WAITOK) in _prop_data_internalize: kernel panic (2^63) / system-wide vm_wait wedge (size > RAM), ERANGE guard compiled out in-kernel", "verdict": "reproduced", "impact": "panic", "confidence": "certain", "reproduce": { "build": "guest root, /tmp/df5680: sh build.sh (same-source libprop rig + triggers)", "run": "kldload dm; ./df5680_dmcrash panic # stock: kernel panics; ./df5680_dmcrash hang # stock: guest wedges; sh run.sh # userland differential (all clean)", "expected": "stock kernel: 'panic: kmem_slab_alloc(): kernel_map ran out of space!' with stack _prop_data_internalize -> _kmalloc -> kmem_slab_alloc (panic.txt); 8GiB variant: 'pagedaemon: WARNING! Continuous paging' + dead guest (hang.console.txt); patched kernel: both inputs -> clean EIO rejection, control plists unaffected" }, "kernel_refs": [ "sys/libprop/prop_data.c:572", "sys/libprop/prop_data.c:573-576", "sys/libprop/prop_data.c:588", "sys/kern/kern_slaballoc.c:1721-1724", "sys/kern/kern_slaballoc.c:1792-1800", "sys/libprop/prop_kern.c:398-411", "sys/dev/disk/dm/device-mapper.c:267" ], "artifacts": [ "README.md", "VERDICT.md", "df5680_userland.c", "df5680_dmcrash.c", "df5680_mod.c", "build.sh", "run.sh", "build.log", "build.kernel.log", "run.userland.log", "panic.txt", "hang.console.txt", "fixtest.console.txt", "fixtest.module.txt", "env.txt", "fix.diff", "manifest.json", "verdict.json" ] } |