{
  "finding_id": "DF-4788",
  "status": "untested",
  "reproduced": 0,
  "impact": "none",
  "confidence": "likely",
  "verdict": "Latent hardening gaps in dal_gpio_service_open: (1) is_pin_busy/set_pin_busy/set_pin_free index the number_of_pins-sized busyness bitmap with a raw caller-supplied uint32_t en that is never bounds-checked in the service layer (gpio_service.c:197-221 vs sizing at :89-94) — an out-of-range en would be an OOB heap read/write, but every current caller passes translate-table-bounded enum constants so the path is unreachable today; (2) .create_generic/.create_sync/.create_gsl are NULL on all four shipped ASIC factory tables yet are invoked without NULL checks (gpio_service.c:254-270) — no display code ever opens those pin classes, so the NULL call is also latent. Filed as defense-in-depth; not exercisable on the audit guest (no AMD GPU).",
  "exploit_chain": "",
  "evidence": "README.md, VERDICT.md (bounds trace), env.txt (guest pci inventory), fix.diff (minimal en-bound hunk)",
  "kernel_refs": [
    "sys/dev/drm/amd/display/dc/gpio/gpio_service.c:190",
    "sys/dev/drm/amd/display/dc/gpio/gpio_service.c:202",
    "sys/dev/drm/amd/display/dc/gpio/gpio_service.c:213",
    "sys/dev/drm/amd/display/dc/gpio/gpio_service.c:233",
    "sys/dev/drm/amd/display/dc/gpio/gpio_service.c:254",
    "sys/dev/drm/amd/display/dc/gpio/gpio_service.c:263",
    "sys/dev/drm/amd/display/dc/gpio/gpio_service.c:267",
    "sys/dev/drm/amd/display/dc/gpio/dce110/hw_factory_dce110.c:148"
  ],
  "poc_changes": "no PoC produced — no reachable trigger path exists in current callers; hardware-gated besides",
  "attempts": 0,
  "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": 0,
  "guest_dirty": 0,
  "build_cmd": "",
  "run_cmd": "",
  "code_hash": "",
  "notes": "The full fixed function (en bound + NULL creator guards + define-after-check reorder) is in findings/poc/DF-4787/fix.diff.",
  "recommended_fix": "Bound en against factory.number_of_pins[id] in dal_gpio_service_open and NULL-check the create_* factory pointers",
  "fix_status": "not_testable",
  "fix_baseline_reproduced": 0,
  "fix_patched_reproduced": 0,
  "fix_verdict": "one-line bounds check; no behavioral change for any current caller (all pass in-range enums); cannot be boot-validated without AMD hardware",
  "fix_evidence": "findings/poc/DF-4788/fix.diff"
}
