⬢ DragonFlyBSD Kernel Audit
DF-2242 / verdict.json
← back to finding ↓ download raw
{
 "finding_id": "DF-2242",
 "status": "reproduced",
 "reproduced": 1,
 "impact": null,
 "confidence": "certain",
 "verdict": "REPRODUCED (semantics, userland replica of the exact expression): lhs=0x123456789abcdef0 >> 4 evaluates to 0x0000000009abcdef through the shipped expression (the top 32 bits are destroyed before the shift) instead of 0x0123456789abcdef. Only reachable from the ddb prompt (console/operator), so this is an LP64 porting bug in the debugger expression engine, not an exploit surface.",
 "exploit_chain": "no escalation path: ddb console expression engine only (operator already privileged)",
 "evidence": "run.log: lhs 0x123456789abcdef0 >> 4 = 0x0000000009abcdef through the shipped cast vs 0x0123456789abcdef fixed",
 "kernel_refs": [
  "sys/ddb/db_expr.c:216"
 ],
 "poc_changes": "none (semantics replica of the exact ddb expression)",
 "attempts": 1,
 "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": 5,
 "guest_dirty": 0,
 "build_cmd": "cc -o dbexpr_shift dbexpr_shift.c",
 "run_cmd": "./dbexpr_shift",
 "code_hash": "f4c3dcdb69d65e6505a62929ffdf4d4dd3f5d4d8d91ca0e0e9aedb74ba7fa818",
 "notes": "",
 "recommended_fix": "Cast to (uintmax_t) so the shift operates on the full 64-bit operand.",
 "fix_status": "not_testable",
 "fix_kernel_uname": null,
 "fix_baseline_reproduced": null,
 "fix_patched_reproduced": null,
 "fix_verdict": "fix.diff compile-validated in the batch combined kernel build (all 37 diffs of this batch applied to in-guest /usr/src; make -j6 nativekernel KERNCONF=X86_64_GENERIC, see batch build log referenced in VERDICT.md); no behavior A/B performed for this Info-tier item; behavior A/B intentionally skipped for Info tier",
 "fix_evidence": "batch combined kernel build log (see findings/poc/_batch41 note in VERDICT.md)"
}