DragonFlyBSD Kernel Audit
DF-1946 / manifest.json
← back to finding ↓ download raw
{
  "finding_id": "DF-1946",
  "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",
  "code_hash": "b9a306d0f9e7f73e4c245b4cc038294a3be6c13dd327ab55b89b5a9764a94a47",
  "tested_at": "2026-07-22T18:10:00Z",
  "verdict": "REPRODUCED",
  "impact": "leak:24+",
  "confidence": "certain",
  "reproduce": {
    "build": "./build.sh",
    "run": "./run.sh",
    "expected": "For each of the 4 malicious cases (4-byte fw, 16-byte fw, OOB payload claim, wrap-around offset), vanilla amdgpu_ucode_validate prints 'PASS (rc=0) <- bug: caller will deref OOB' and the fixed version prints 'REJECT (rc=-22)'. Baseline 64-byte well-formed fw passes both. After applying fix.diff to /usr/src and rebuilding amdgpu.ko, the build returns rc=0 with amdgpu_ucode_validate symbol present in the new module."
  },
  "kernel_refs": [
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:251",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:252",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:253",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:254",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:255",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:256",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:257",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:258",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:259",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.h:26",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.h:34",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.h:35"
  ],
  "artifacts": [
    {
      "path": "validate_bypass.c",
      "type": "trigger-source",
      "desc": "userspace replica of amdgpu_ucode_validate (vanilla + fixed) with 5 test cases"
    },
    {
      "path": "build.sh",
      "type": "build-script",
      "desc": "cc -O2 -Wall -Wextra -o validate_bypass validate_bypass.c"
    },
    {
      "path": "run.sh",
      "type": "run-script",
      "desc": "executes ./validate_bypass"
    },
    {
      "path": "build.log",
      "type": "build-log",
      "desc": "final successful build, full output"
    },
    {
      "path": "run.log",
      "type": "run-log",
      "desc": "decisive run, full output (5 cases)"
    },
    {
      "path": "fix.diff",
      "type": "suggested-fix",
      "desc": "git-apply-able: harden amdgpu_ucode_validate with sizeof check + overflow-safe payload bounds"
    },
    {
      "path": "fix_build.log",
      "type": "build-log",
      "desc": "Phase 8: amdgpu.ko build with fix applied, rc=0"
    },
    {
      "path": "env.txt",
      "type": "environment",
      "desc": "uname, cc version, sysctls"
    },
    {
      "path": "dmesg.txt",
      "type": "dmesg",
      "desc": "proof no AMD GPU is present on the guest (HW-gated)"
    },
    {
      "path": "VERDICT.md",
      "type": "verdict",
      "desc": "full narrative + Phase 6 hard-blocker analysis"
    },
    {
      "path": "README.md",
      "type": "readme",
      "desc": "human-facing summary + reproduce instructions"
    },
    {
      "path": "manifest.json",
      "type": "manifest",
      "desc": "this catalog"
    },
    {
      "path": "fix_apply.log",
      "type": "apply-log",
      "desc": "patch --dry-run output proving fix.diff applies cleanly on with-src"
    },
    {
      "path": "../fix_build_combined.log",
      "type": "build-log",
      "desc": "Combined 41-finding kernel build (rc=0, -Werror clean)"
    },
    {
      "path": "../fix_build_summary.txt",
      "type": "build-summary",
      "desc": "Summary of the combined 41-finding kernel build"
    }
  ]
}