DF-3359 / verdict.json
{ "finding_id": "DF-3359", "status": "reproduced", "reproduced": 1, "poc_path": "findings/poc/DF-3359", "artifact_dir": "findings/poc/DF-3359", "build_cmd": "cc -O -o <prog> <prog>.c (on the guest)", "run_cmd": "(driver script; listener runs as nobody)", "code_hash": "e2ff3b6646cdf089c0aed7256a7585844599868580c9c51086a0723dc4a7458a", "build_log": "(inline)", "run_log": "live1.log", "impact": "leak", "confidence": "certain", "verdict": "rtsock builders size the DESTINATION from producer sa_len (no write overflow) but bound the SOURCE read by nothing: with the DF-3320 setup planting sin_len=200 into a live in_ifaddr (one-time root misconfiguration), an UNPRIVILEGED nobody listener received kernel heap pointers (0xfffff8004f2e5da0 etc.) via NET_RT_IFLIST (rt_msg_buffer bcopy) AND via RTM_NEWADDR/RTM_DELADDR events (rt_msg_mbuf), 12 poisoned sockaddrs per run.", "exploit_chain": "", "evidence": "live1.log DF-3359 section: [IFLIST]/[NEWADDR]/[DELADDR] entries with kernel pointers at offsets 56-88; unpriv listener (nobody)", "kernel_refs": [ "sys/net/rtsock.c:1140-1144", "sys/net/rtsock.c:1175-1180", "sys/net/rtsock.c:1202-1206" ], "poc_changes": "", "attempts": 3, "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", "runtime_sec": 60, "guest_dirty": 0, "runner": "df-bsd-reviewer", "notes": "", "recommended_fix": "fix.diff", "fix_status": "fixed", "fix_verdict": "A/B on the combined-fix kernel (kernel #2, rtsock clamp in rt_msg_buffer + rt_msg_mbuf): baseline unprivileged listener received 12 poisoned event sockaddrs (kernel pointers) plus 2 IFLIST entries; patched kernel: PF_ROUTE poisoned events 0, no sa_len=200 entry in NET_RT_IFLIST (remaining sa_len>16 entries are legitimate 20-byte AF_LINK sockaddrs). See fixkernel3.log / fix_run.log.", "fix_baseline_reproduced": 1, "fix_patched_reproduced": 0, "fix_kernel_uname": "DFBSD 6.5-DEVELOPMENT combined-fix kernel (see fixkernel.log)" } |