⬢ DragonFlyBSD Kernel Audit
DF-3487 / manifest.json
← back to finding ↓ download raw
{
  "finding_id": "DF-3487",
  "verdict": "reproduced",
  "reproduce": {
    "build": "cd /usr/src/sys/netgraph7/netgraph && make obj depend && make; kldload netgraph.ko; cd /usr/src/sys/netgraph7/pppoe && make obj depend && make; kldload ng_pppoe.ko; cd /root/ppsbx && make; kldload ./ppsbx.ko",
    "run": "sysctl debug.ppsbx_cmd=1; sleep 1; sysctl debug.ppsbx_cmd=2; sysctl debug.ppsbx_len; sysctl -b debug.ppsbx_capture | od -A x -t x1",
    "expected": "baseline: debug.ppsbx_len: 944 and capture shows 896 bytes read OOB past the 32-byte PADI mbuf (kernel pointers such as 0xfffff80117632908, mbuf headers, ifnet names, on busy boots a full TCP segment). With fix.diff applied to ng_pppoe.c and module rebuilt: debug.ppsbx_len: 0, capture empty, no panic (2/2 runs)."
  },
  "kernel_refs": [
    "sys/netgraph7/pppoe/ng_pppoe.c:1194",
    "sys/netgraph7/pppoe/ng_pppoe.c:1231",
    "sys/netgraph7/pppoe/ng_pppoe.c:1244",
    "sys/netgraph7/pppoe/ng_pppoe.c:1247",
    "sys/netgraph7/pppoe/ng_pppoe.c:292",
    "sys/netgraph7/pppoe/ng_pppoe.c:299",
    "sys/netgraph7/pppoe/ng_pppoe.c:1632"
  ],
  "artifacts": [
    "README.md", "VERDICT.md", "ppsbx.c", "Makefile", "build.sh", "run.sh",
    "run.log", "leak1.txt", "leak2.txt", "leak3.txt", "leak_sample.txt",
    "fixleak1.txt", "fixleak2.txt", "fixrun.log", "env.txt", "fix.diff",
    "manifest.json", "verdict.json"
  ]
}