DF-3762 / verdict.json
{ "finding_id": "DF-3762", "status": "inconclusive", "reproduced": 0, "impact": "none", "confidence": "certain", "verdict": "Source-certain instance of the DF-3643/DF-3671 unchecked-PHY-read family in the shared e1000 PHY layer: e1000_phy.c:3848 drops read_reg()s return and branches on uninitialized stack at :3849 (reachable via e1000_ich8lan.c:1755 cfg_on_link_up on 82578/PCH); :3503/:3521 write back over PHY_CONTROL after ignored read failures (error-path link clobber); :3075 drops get_phy_id()s return; :2918-2984 drop all init-script write returns. Logic-replication harness compiled+run on the guest proves the uninitialized-decision pattern (GCC -Wuninitialized fires); in-kernel execution impossible on the virtio-only guest (no e1000 NIC), so classified inconclusive rather than not_reproduced. Info severity, no escalation path.", "exploit_chain": "", "evidence": "run.log (compiler -Wuninitialized proof + decision-on-uninitialized-data output); VERDICT.md (full path:line trace); module_presence.log + env.txt (guest virtio-only, em/igb static, no HW); trigger.c (replication source)", "kernel_refs": [ "sys/dev/netif/ig_hal/e1000_phy.c:3848", "sys/dev/netif/ig_hal/e1000_phy.c:3849", "sys/dev/netif/ig_hal/e1000_phy.c:3503", "sys/dev/netif/ig_hal/e1000_phy.c:3521", "sys/dev/netif/ig_hal/e1000_phy.c:3075", "sys/dev/netif/ig_hal/e1000_phy.c:2918", "sys/dev/netif/ig_hal/e1000_ich8lan.c:1755" ], "poc_changes": "Seed had no runnable PoC; authored trigger.c logic-replication (instrumented failing read shim mirroring e1000_read_phy_reg_mdic error path) because no e1000 hardware exists on the guest; built on the guest via base64 transport (host has no compiler).", "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": 420, "guest_dirty": 0, "build_cmd": "cc -O2 -Wall -o /tmp/df3762 /tmp/df3762.c (on guest; source == findings/poc/DF-3762/trigger.c)", "run_cmd": "/tmp/df3762 ; echo exit=$? (expect: decision on UNINITIALIZED data, exit=1)", "code_hash": "aa11716ccc05e77b084bbae7d7b829489631dc14017fc919f58abcd38f1a4f52", "notes": "Part of reserved batch DF-3762..DF-3773; only this ID used (single finding). Family precedent: DF-3643 (Info), DF-3671 (Info) \u2014 this is the e1000_phy.c instance, not previously reported for this file.", "recommended_fix": "Check and propagate every phy read_reg/write_reg/get_phy_id return in e1000_phy.c (:3848, :3503, :3521, :3075, init-script) instead of branching/writing back on failure.", "fix_status": "not_testable", "fix_baseline_reproduced": 0, "fix_patched_reproduced": 0, "fix_verdict": "Mechanical return-value plumbing (same shape as DF-3643/DF-3671 upstream parity fixes); cannot be kernel-build validated without e1000 hardware \u2014 guest is virtio-only.", "fix_evidence": "fix sketch in VERDICT.md; no kernel build performed (no hardware to observe behavior on)." } |