DragonFlyBSD Kernel Audit
DF-0796 / run.log
← back to finding ↓ download raw
DF-0796 baseline run on DragonFly 6.5-DEVELOPMENT #0 (unpatched audit-source kernel)

Command (as root):  kldload /root/df0796/df0796_harness.ko

Harness loads, synthesises a hammer2_inode whose cluster has a NULL interior
chain slot (clindex=0 < nchains=2, array[0].chain == NULL -- the "gaps may
remain" state from hammer2_vfsops.c:820-838), and calls
hammer2_inode_chain_and_parent(ip, 0, &parent, HAMMER2_RESOLVE_SHARED).

Result on #0 (BUG PRESENT):
  DF-0796: loading NULL-cluster-slot harness
  DF-0796: invoking hammer2_inode_chain_and_parent on inode with NULL chain slot (clindex=0, nchains=2)
  DF-0796: expect NULL-deref panic at hammer2_inode_chain_and_parent+0x.. (chain->parent)
  Fatal user address access from kernel mode from kldload at ffffffff802aad04
  Fatal trap 12: page fault while in kernel mode
  fault virtual address   = 0x118          <-- chain->parent, chain==NULL
  Stopped at hammer2_inode_chain_and_parent.cold.9+0x15:  movq 0x118,%rax
  db>

  ssh connection died (guest in DDB); vm.sh status => down.
  This is the NULL-deref DoS.  (Pure DoS -- NULL deref at a fixed kernel
  offset, no corruption primitive, no escalation possible.)