⬢ DragonFlyBSD Kernel Audit
DF-3944 / verdict.json
← back to finding ↓ download raw
{
  "finding_id": "DF-3944",
  "status": "not_reproduced",
  "reproduced": 0,
  "impact": "none",
  "confidence": "certain",
  "verdict": "Latent OOB read: patch_gamut_packet_checksum (dc_resource.c:2152-2155) sums ptr[i] for i up to sb[1] (max 255) starting at &sb[3] of a 32-byte array -> up to 227 bytes past struct dc_info_packet. Path is dead in this tree: the only assignment to the gamut packets valid flag is info->gamut.valid=false (dc_resource.c:2625) and a tree-wide grep finds no producer setting it true; the checksum patcher early-returns on !valid (:2146). Filed as Info hardening with an array-bounds fix; upstream DC later dropped gamut emission entirely.",
  "exploit_chain": "",
  "evidence": "run.log (guest-wide grep: 0 producers; vulnerable loop; sb[32] size), check_gamut_dead.sh, fix.diff (git-apply-clean)",
  "kernel_refs": [
    "sys/dev/drm/amd/display/dc/core/dc_resource.c:2152",
    "sys/dev/drm/amd/display/dc/core/dc_resource.c:2625",
    "sys/dev/drm/amd/display/dc/dc_types.h:530"
  ],
  "poc_changes": "no seed; static presence checker",
  "attempts": 1,
  "guest_uname": "DragonFly dfbsd 6.5-DEVELOPMENT #0: Thu Jul 2 06:02:54 UTC 2026 x86_64",
  "runtime_sec": 3,
  "guest_dirty": 0,
  "build_cmd": "(none \u2014 static check)",
  "run_cmd": "./check_gamut_dead.sh /usr/src/sys/dev/drm/amd/display/dc/core/dc_resource.c",
  "code_hash": "0fba0fc49c6d84fdbbe9ae7466a67ec3fe8ced36e93fcac3e493a974ed6a9acb",
  "notes": "dead-path Info finding, consistent with DF-1300 precedent for dead APIs",
  "recommended_fix": "bound the checksum loop by sizeof(sb)-3 (fix.diff) or delete the dead gamut emission path",
  "fix_status": "not_testable",
  "fix_baseline_reproduced": 0,
  "fix_patched_reproduced": 0,
  "fix_verdict": "path dead in-tree; fix.diff applies clean and bounds the read for any future producer",
  "fix_evidence": "fix.diff; git apply --check clean"
}