DragonFlyBSD Kernel Audit
DF-1947 / manifest.json
← back to finding ↓ download raw
{
  "finding_id": "DF-1947",
  "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": "panic",
  "confidence": "certain",
  "reproduce": {
    "build": "./build.sh",
    "run": "./run.sh",
    "expected": "Harness prints the MEC1/MEC2 underflow arithmetic (ucode_size_bytes=0x10, jt_size*4=0x100 -> memcpy len=0xFFFFFF10 = ~4 GiB), then triggers SIGSEGV at BO+4096 in the guard-page proof, proving the memcpy length writes past the destination. Also analytically shows the DMCU_ERAM and patch_jt wrap paths. After applying fix.diff to /usr/src and rebuilding amdgpu.ko, the build returns rc=0 with the underflow/bounds guards compiled in."
  },
  "kernel_refs": [
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:354",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:355",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:356",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:357",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:358",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:359",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:369",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:370",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:371",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:372",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:373",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:374",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:412",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:413",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:414",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:415",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:416",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:417",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:418",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:251",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:423",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.c:449",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.h:61",
    "sys/dev/drm/amd/amdgpu/amdgpu_ucode.h:160"
  ],
  "artifacts": [
    {
      "path": "oob_write.c",
      "type": "trigger-source",
      "desc": "userspace replica of amdgpu_ucode_init_single_fw MEC1/MEC2 path + guard-page proof + DMCU/patch_jt analytics"
    },
    {
      "path": "build.sh",
      "type": "build-script",
      "desc": "cc -O2 -Wall -Wextra -o oob_write oob_write.c"
    },
    {
      "path": "run.sh",
      "type": "run-script",
      "desc": "executes ./oob_write"
    },
    {
      "path": "build.log",
      "type": "build-log",
      "desc": "final successful build, full output"
    },
    {
      "path": "run.log",
      "type": "run-log",
      "desc": "decisive run, full output incl underflow + SIGSEGV"
    },
    {
      "path": "fix.diff",
      "type": "suggested-fix",
      "desc": "git-apply-able: underflow/multiplication guards + arr_off+ucode_size bounds in init_single_fw and patch_jt"
    },
    {
      "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 + primitive characterization"
    },
    {
      "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"
    }
  ]
}