⬢ DragonFlyBSD Kernel Audit
DF-5289 / manifest.json
← back to finding ↓ download raw
{
  "finding_id": "DF-5289",
  "title": "vkernel pmap_enter/pmap_unwire wire-accounting corruption on UKSMAP mappings (mlock /dev/upmap) - slab page wire drop + deterministic panic",
  "verdict": "reproduced",
  "impact": "panic",
  "reproduce": {
    "build": "guest: cd /usr/src && make -j6 nativekernel KERNCONF=VKERNEL64 (see README for the __build_id link shim + vkroot.img recipe); cc -static -O -o poc df5289.c",
    "run": "guest root: sh run.sh  (vkernel -m 512m -r /vkroot.img -e init_path=/bin/vkinit -s; driver pre-feeds 'ufs:vkd0' to mountroot then runs /root/poc)",
    "expected": "baseline: panic 'vm_page_unwire: invalid wire count: 0' at cycle 1 munlock (after cycle-0 silent corruption); fixed kernel: 'DF5289: SURVIVED - no panic'"
  },
  "kernel_refs": [
    "sys/platform/vkernel64/platform/pmap.c:2429",
    "sys/platform/vkernel64/platform/pmap.c:2652",
    "sys/vm/vm_fault.c:2679",
    "sys/vm/vm_fault.c:562",
    "sys/kern/kern_slaballoc.c:1830"
  ],
  "artifacts": [
    "df5289.c",
    "run.sh",
    "run.baseline.log",
    "run.fixed.log",
    "panic.txt",
    "build.log",
    "fix-build.log",
    "fix.diff",
    "README.md",
    "VERDICT.md",
    "manifest.json",
    "verdict.json"
  ]
}