DragonFlyBSD Kernel Audit
DF-0759 / manifest.json
← back to finding ↓ download raw
{
  "finding_id": "DF-0759",
  "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  (userland injector only; run.sh builds the netgraph7 kernel modules in-guest)",
    "run": "sudo sh run.sh   (must run as root: netgraph control socket is privileged)",
    "expected": "kernel panic; see panic.txt / run.log. On a fixed kernel: exits 0, no panic."
  },
  "kernel_refs": [
    "sys/netgraph7/ng_split.c:134",
    "sys/netgraph7/ng_split.c:136",
    "sys/netgraph7/ng_split.c:144",
    "sys/netgraph7/ng_split.c:145",
    "sys/netgraph7/netgraph.h:816",
    "sys/netgraph7/netgraph.h:818",
    "sys/netgraph7/netgraph.h:819",
    "sys/netgraph7/netgraph/ng_base.c:1974",
    "sys/sys/systm.h:94",
    "sys/sys/systm.h:98",
    "sys/config/X86_64_GENERIC:56",
    "sys/conf/options:331"
  ],
  "artifacts": [
    {
      "path": "inject.c",
      "type": "trigger-source",
      "desc": "userland trigger: socket:tx -> split:out topology + 1 data byte via libnetgraph7 (NG_VERSION=8)"
    },
    {
      "path": "build.sh",
      "type": "build-script",
      "desc": "compiles inject against libnetgraph"
    },
    {
      "path": "run.sh",
      "type": "run-script",
      "desc": "builds netgraph7 core+socket+ng_split(KCFLAGS=-DINVARIANTS), loads, fires inject"
    },
    {
      "path": "fix.diff",
      "type": "suggested-fix",
      "desc": "drop redundant NG_FREE_ITEM in out-hook branch; catch-all at :144-145 frees once"
    },
    {
      "path": "panic.txt",
      "type": "panic-signature",
      "desc": "baseline panic: KKASSERT '!(item->el_flags & NGQF_FREE)' at ng_split.c:145 (INVARIANTS)"
    },
    {
      "path": "run.log",
      "type": "run-log",
      "desc": "decisive FIXED run: NO_PANIC, guest up, out-hook kprintf still fires"
    },
    {
      "path": "build.log",
      "type": "build-log",
      "desc": "netgraph7 + ng_split (INVARIANTS) + injector build output"
    },
    {
      "path": "env.txt",
      "type": "environment",
      "desc": "6.5-DEVELOPMENT #0 X86_64_GENERIC, INVARIANTS on, gcc 8.3"
    },
    {
      "path": "VERDICT.md",
      "type": "verdict",
      "desc": "full narrative: mechanism, reachability, before/after, no-corruption rationale"
    },
    {
      "path": "README.md",
      "type": "readme",
      "desc": "human reproduction guide"
    },
    {
      "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"
    }
  ]
}