DF-2548 / manifest.json
{ "finding_id": "DF-2548", "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": "8a3f77ee1467ed17ac257a4c1416f1d55ba156308087f896ef27a75ccc64623d", "tested_at": "2026-08-08T18:49:29Z", "verdict": "REPRODUCED", "impact": "leak:102ptrs", "confidence": "certain", "reproduce": { "build": "./build.sh", "run": "./run.sh", "expected": "On the unpatched kernel: prints ~102 raw kernel pointers (38 .text + 64 heap) and exits 0 (LEAK CONFIRMED). On the fixed kernel: prints 0 pointers and exits 2 (NO LEAK)." }, "kernel_refs": [ "sys/kern/tty.c:2891", "sys/kern/tty.c:2906", "sys/kern/tty.c:2911", "sys/kern/tty.c:2912", "sys/kern/tty.c:2913", "sys/kern/tty.c:2914", "sys/kern/tty.c:2923", "sys/sys/tty.h:73", "sys/sys/tty.h:74", "sys/sys/tty.h:86", "sys/sys/tty.h:87", "sys/sys/tty.h:88", "sys/sys/tty.h:94", "sys/sys/tty.h:96", "sys/sys/tty.h:98", "sys/sys/tty.h:99", "sys/sys/tty.h:100", "sys/sys/tty.h:101", "sys/sys/thread.h:159", "sys/sys/event.h:160" ], "artifacts": [ {"path": "poc.c", "type": "trigger-source", "desc": "sysctl(2) reader; scans kern.ttys blob for kernel-range pointers, splits .text vs heap"}, {"path": "build.sh", "type": "build-script", "desc": "cc -O2 -o poc poc.c"}, {"path": "run.sh", "type": "run-script", "desc": "./poc as unprivileged user"}, {"path": "README.md", "type": "readme", "desc": "human-facing build/run/expected + file index"}, {"path": "VERDICT.md", "type": "verdict", "desc": "full narrative: mechanism, proof, impact, fix, fix-validation before/after"}, {"path": "build.log", "type": "build-log", "desc": "final successful PoC build (cc, exit 0)"}, {"path": "run.log", "type": "run-log", "desc": "decisive baseline run: 102 ptrs leaked (38 .text + 64 heap)"}, {"path": "run.2.log", "type": "run-log", "desc": "variance run 2: 102 ptrs (deterministic)"}, {"path": "run.3.log", "type": "run-log", "desc": "variance run 3: 102 ptrs (deterministic)"}, {"path": "fix_run.log", "type": "run-log", "desc": "patched-kernel (#1) run: 0 ptrs leaked"}, {"path": "fix_build.log", "type": "build-log", "desc": "single-fix kernel build (make -j6 nativekernel, rc=0)"}, {"path": "fix.diff", "type": "suggested-fix", "desc": "git-apply-able: bzero/NULL all kernel-pointer fields of struct tty before SYSCTL_OUT"}, {"path": "leak_sample.txt", "type": "leak-sample", "desc": "raw leaked pointers (3-run determinism) + .text cross-reference vs nm"}, {"path": "env.txt", "type": "environment", "desc": "uname, kern.version, cc version, sysctl OID description"}, {"path": "ttys.bin", "type": "leak-sample", "desc": "raw 3760-byte kern.ttys blob from unpatched baseline"}, {"path": "manifest.json", "type": "manifest", "desc": "this file"} ] } |