⬢ DragonFlyBSD Kernel Audit
DF-4416 / verdict.json
← back to finding ↓ download raw
{
  "status": "untested",
  "impact": "none",
  "confidence": "certain",
  "verdict": "wa_init_mcr (intel_workarounds.c:787) indexes the 0-based sseu->subslice_mask[] with the 1-based fls(slice_mask) result; the same 1-based values from intel_calculate_mcr_s_ss_select (intel_engine_cs.c:769-770) are programmed into GEN8/11_MCR_SELECTOR via intel_workarounds.c:819-822. On single-slice gen10/11 parts (slice_mask==0x1, all ICL) this reads slice 1s subslice mask and steers MCR packets to the nonexistent slice 1, contradicting the enabled-pair requirement in the functions own comment. Out-of-bounds requires 8 fused slices (fls==8 vs array[8]) which no hardware has (GEN_MAX_SLICES=6), so impact is wrong MCR steering / bogus WARN at :799, not memory corruption. Untested: guest has no Intel GPU; 0-based semantics proven in-tree by read_subslice_reg callers (intel_ringbuffer.h:103-109).",
  "exploit_chain": "",
  "evidence": "VERDICT.md (full trace); intel_workarounds.c:781-800,819-822; intel_engine_cs.c:765-782,785; intel_device_info.h:116-121; i915_reg.h:2442-2449",
  "kernel_refs": [
    "sys/dev/drm/i915/intel_workarounds.c:787",
    "sys/dev/drm/i915/intel_workarounds.c:789",
    "sys/dev/drm/i915/intel_workarounds.c:819",
    "sys/dev/drm/i915/intel_engine_cs.c:769",
    "sys/dev/drm/i915/intel_engine_cs.c:770",
    "sys/dev/drm/i915/intel_device_info.h:121"
  ],
  "notes": "Low severity logic/off-by-one; upstream later switched to ffs(mask)-1. Fix touches intel_engine_cs.c companion instance as well.",
  "recommended_fix": "Use ffs(sseu->slice_mask)-1 for the array index and 0-based values for the MCR selector (see fix.diff).",
  "finding_id": "DF-4416",
  "reproduced": 0,
  "poc_changes": "No runnable PoC authored (hardware-dependent path); source-trace verification only.",
  "attempts": 0,
  "guest_uname": null,
  "runtime_sec": 0,
  "guest_dirty": 0,
  "build_cmd": null,
  "run_cmd": null,
  "code_hash": null,
  "fix_status": "not_testable",
  "fix_baseline_reproduced": 0,
  "fix_patched_reproduced": 0,
  "fix_verdict": "Fix validation not performed: no triggering hardware (Intel gen10/11 GPU / 82541 NIC) exists in the audit QEMU guest; fix.diff authored from line-accurate source analysis only.",
  "fix_evidence": "Fix validation not performed: no triggering hardware (Intel gen10/11 GPU / 82541 NIC) exists in the audit QEMU guest; fix.diff authored from line-accurate source analysis only."
}