⬢ DragonFlyBSD Kernel Audit
DF-5224 / manifest.json
← back to finding ↓ download raw
{
  "finding_id": "DF-5224",
  "file": "sys/dev/drm/amd/display/dc/bios/bios_parser_helper.c",
  "verdict": "untested",
  "impact": "none",
  "confidence": "speculative",
  "severity": "Info",
  "class": "hardening / latent integer wrap (CWE-190) at the DC atombios image-bounds helper",
  "reproduce": {
    "build": "n/a — source-level verification only",
    "run": "./verify.sh (mechanical caller-bounds audit backing the negative reachability claim); git apply --check fix.diff",
    "expected": "run.log shows every GET_IMAGE/bios_get_image caller offset bounded by two uint16_t table fields (max ~0x1FFFE) and sizes <= ~4KB or <=510 (64-bit computed), so offset+size cannot wrap uint32; fix.diff applies cleanly"
  },
  "kernel_refs": [
    "sys/dev/drm/amd/display/dc/bios/bios_parser_helper.c:36",
    "sys/dev/drm/amd/display/dc/bios/bios_parser_helper.c:40",
    "sys/dev/drm/amd/display/dc/bios/bios_parser_helper.h:39",
    "sys/dev/drm/amd/display/dc/bios/bios_parser.c:2878",
    "sys/dev/drm/amd/display/dc/bios/bios_parser.c:2022",
    "sys/dev/drm/amd/display/dc/bios/bios_parser2.c:1930",
    "sys/dev/drm/amd/include/atomfirmware.h:381",
    "sys/dev/drm/amd/amdgpu/Makefile:208"
  ],
  "non_duplicates": ["DF-4168 (bios_size provenance, bios_parser2.c:1930)", "DF-3942 (caller NULL-deref)", "DF-1299 (caller flex-count OOB)"],
  "artifacts": ["README.md", "VERDICT.md", "verify.sh", "run.log", "fix.diff", "manifest.json", "verdict.json"],
  "audited_pass": 2
}