⬢ DragonFlyBSD Kernel Audit
DF-3168 / manifest.json
← back to finding ↓ download raw
{
  "finding_id": "DF-3168",
  "verdict": "reproduced",
  "impact": "panic",
  "bucket": "memcorrupt",
  "reproduce": {
    "build": "cc -O2 -Wall -o /tmp/patch_leaf_rebal patch_leaf_rebal.c",
    "run": "sh mkimage.sh && /tmp/patch_leaf_rebal walk /build/poc.img && /tmp/patch_leaf_rebal patch /build/poc.img && sh trigger.sh",
    "expected": "stock INVARIANTS kernel: 'add count 128' accumulation lines, 31 closeouts, then panic: assertion slab->magic == KMALLOC_SLAB_MAGIC failed in _kfree_obj (hammer_rebalance.c:406-407 wrote 64B granules past the 4KB kmalloc'd node copies); fixed kernel: 'rebalance: bad node ... type L count 128' -> EIO, verify shows only the 14 self-forged leaves"
  },
  "kernel_refs": [
    "sys/vfs/hammer/hammer_rebalance.c:75-78",
    "sys/vfs/hammer/hammer_rebalance.c:174",
    "sys/vfs/hammer/hammer_rebalance.c:194-195",
    "sys/vfs/hammer/hammer_rebalance.c:326-334",
    "sys/vfs/hammer/hammer_rebalance.c:371",
    "sys/vfs/hammer/hammer_rebalance.c:406-407",
    "sys/vfs/hammer/hammer_rebalance.c:541-543",
    "sys/vfs/hammer/hammer_btree.c:2473",
    "sys/vfs/hammer/hammer_ondisk.c:1313-1325",
    "sys/vfs/hammer/hammer_btree.h:225"
  ],
  "artifacts": [
    "mkimage.sh",
    "patch_leaf_rebal.c",
    "trigger.sh",
    "trigger_fix.sh",
    "console_full.log",
    "panic.txt",
    "run.log",
    "fixrun.log",
    "build.log",
    "fix.diff",
    "code_hashes.txt",
    "README.md",
    "VERDICT.md",
    "build.sh",
    "run.sh",
    "manifest.json",
    "verdict.json"
  ]
}