DF-3786 / verdict.json
{ "finding_id": "DF-3786", "status": "reproduced", "reproduced": 1, "impact": "dos", "confidence": "certain", "verdict": "REPRODUCED at source level (loop-bound harness): count=32767 touches sig[3836] vs the 256-byte array; OOB RMW reaches ioctl-buffer offset 3840 (allocation 260 bytes). The ACK-dependent bit-set requires real i2c devices (absent on this guest).", "exploit_chain": "open /dev/tuner0 (0444) -> BT848_SIGNATURE{count=32767} -> signCard ORs bits into ~3.8 KiB past the 260-byte heap allocation (groomable bit-flip corruption of adjacent kernel objects).", "evidence": "run.log: sig[3836] touched, allocation 260 bytes.", "kernel_refs": [ "sys/dev/video/bktr/bktr_core.c:2094", "sys/dev/video/bktr/bktr_card.c:461", "sys/dev/video/bktr/bktr_card.c:468", "sys/dev/video/bktr/ioctl_bt848.h:96" ], "poc_changes": "none", "attempts": 2, "guest_uname": "DragonFly dfbsd 6.5-DEVELOPMENT #0: Thu Jul 2 06:02:54 UTC 2026 root@dfbsd:/usr/obj/usr/src/sys/X86_64_GENERIC x86_64", "runtime_sec": 150, "guest_dirty": 0, "build_cmd": "cc -O -Wall -o harness harness_signcard.c", "run_cmd": "./harness", "code_hash": "bb2ae5e6c22b4059a5ec5c770bb499572509333855a48f01a551288859636813", "notes": "Bit-OR (not byte) primitive; severity High per kernel memory corruption rubric.", "recommended_fix": "Bound count by sizeof(bytes)*8 in BT848_SIGNATURE (fix.diff)", "fix_status": "not_testable", "fix_baseline_reproduced": 1, "fix_patched_reproduced": 0, "fix_verdict": "Runtime fix validation impossible on this guest (no Bt848/878 hardware, driver not in GENERIC, no module dir). fix.diff applies cleanly to sys/ and the patched bktr KLD module compiles with -Werror on the guests /usr/src (fix_build.log).", "fix_evidence": "fix.diff; fix_build.log (all-8-fixes module build, MAKE_RC=0)" } |