DF-2449 / manifest.json
{ "finding_id": "DF-2449", "guest_uname": "DragonFly dfbsd 6.5-DEVELOPMENT DragonFly 6.5-DEVELOPMENT #0: Thu Jul 2 06:02:54 UTC 2026 root@dfbsd:/usr/obj/usr/src/sys/X86_64_GENERIC x86_64", "code_hash": "7b7fb2b98cc795c2e2c42001c3f916fe58648bff0652313e16272cd6c967e07d", "tested_at": "2026-08-09T00:37:58Z", "verdict": "REPRODUCED", "impact": "leak:16", "confidence": "certain", "reproduce": { "build": "./build.sh", "run": "./run.sh", "expected": "Unpatched: 5 reloads succeed and leak uninitialized start/length (0/0 then 0xff..ff with debug.use_malloc_pattern=1, variance 4/4 across trials). Patched dm.ko: 5 reloads return EINVAL, no leak path reachable. A valid reload (start/length supplied) still succeeds on patched module." }, "kernel_refs": [ "sys/dev/disk/dm/dm_ioctl.c:743", "sys/dev/disk/dm/dm_ioctl.c:744", "sys/dev/disk/dm/dm_ioctl.c:750", "sys/dev/disk/dm/dm_ioctl.c:752", "sys/dev/disk/dm/dm_ioctl.c:937", "sys/dev/disk/dm/dm_ioctl.c:939", "sys/libprop/prop_dictionary_util.c:118", "sys/libprop/prop_dictionary_util.c:126", "sys/libprop/prop_dictionary_util.c:136", "sys/kern/kern_slaballoc.c:1144", "sys/kern/kern_slaballoc.c:222" ], "artifacts": [ {"path": "dm_uninit_startlength.c", "type": "trigger-source", "desc": "PoC: create/reload(table entry omits start/length)/table-readback; reports leak variance or FIX-IS-IN-EFFECT"}, {"path": "build.sh", "type": "build-script", "desc": "cc -O2 -o dm_uninit_startlength dm_uninit_startlength.c -lprop"}, {"path": "run.sh", "type": "run-script", "desc": "./dm_uninit_startlength (as root, after kldload dm)"}, {"path": "fix.diff", "type": "suggested-fix", "desc": "git-apply-able: add M_ZERO + check get_uint64 returns -> EINVAL on missing start/length"}, {"path": "VERDICT.md", "type": "verdict", "desc": "full narrative: mechanism, privilege analysis, fix validation"}, {"path": "README.md", "type": "readme", "desc": "summary + reproduce instructions"}, {"path": "build.log", "type": "build-log", "desc": "final successful PoC build (compiler output)"}, {"path": "run.log", "type": "run-log", "desc": "decisive baseline run on unpatched #0 kernel (5 trials, leak confirmed)"}, {"path": "fix_build.log", "type": "build-log", "desc": "single-fix dm module build (full make output)"}, {"path": "fix_run.log", "type": "run-log", "desc": "PoC re-run on patched dm.ko: 5 EINVAL, FIX IS IN EFFECT"}, {"path": "fix_run.2.log", "type": "run-log", "desc": "determinism re-run on patched dm.ko: same EINVAL result"}, {"path": "env.txt", "type": "environment", "desc": "uname, kern.version, cc version, sysctls, kldstat, /dev/mapper/control perms"}, {"path": "manifest.json", "type": "manifest", "desc": "this catalog"} ] } |