{
  "finding_id": "DF-0752",
  "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": "dos",
  "confidence": "certain",
  "reproduce": {
    "build": "./build.sh",
    "run": "sudo ifconfig tap0 create; sudo ifconfig tap0 up; sudo ./run.sh   (requires options MPLS in kernel config)",
    "expected": "guest hang/wedge (DoS); see run.log. On a fixed kernel: returns promptly."
  },
  "kernel_refs": [
    "sys/netproto/mpls/mpls_input.c:199",
    "sys/netproto/mpls/mpls_input.c:200",
    "sys/netproto/mpls/mpls_input.c:202",
    "sys/netproto/mpls/mpls_input.c:156",
    "sys/netproto/mpls/mpls_input.c:163",
    "sys/netproto/mpls/mpls_input.c:169",
    "sys/netproto/mpls/mpls_input.c:217",
    "sys/netproto/mpls/mpls_input.c:159",
    "sys/net/if_ethersubr.c:1618",
    "sys/conf/files:1866"
  ],
  "artifacts": [
    {
      "path": "mpls_flood.c",
      "type": "trigger-source",
      "desc": "injector: writes N MPLS frames (unroutable label) to /dev/tap0"
    },
    {
      "path": "build.sh",
      "type": "build-script",
      "desc": "exact cc build of the injector"
    },
    {
      "path": "run.sh",
      "type": "run-script",
      "desc": "tap0 setup + flood + netstat -m before/after"
    },
    {
      "path": "fix.diff",
      "type": "suggested-fix",
      "desc": "m_freem(m) + mplss_cantforward++ on route-not-found path"
    },
    {
      "path": "baseline_run.txt",
      "type": "run-log",
      "desc": "unpatched MPLS kernel: 20000-frame flood leaks +20000 mbufs"
    },
    {
      "path": "fix_run.txt",
      "type": "run-log",
      "desc": "fixed kernel: 20000-frame flood, 0 mbuf growth"
    },
    {
      "path": "fix_run2.txt",
      "type": "run-log",
      "desc": "fixed kernel: 2x 40000-frame floods, 0 mbuf growth"
    },
    {
      "path": "leak_sample.txt",
      "type": "leak-sample",
      "desc": "all netstat -m before/after samples, both kernels"
    },
    {
      "path": "fix_build.log",
      "type": "build-log",
      "desc": "full MPLS+fix kernel build (rc=0)"
    },
    {
      "path": "fix_build_baseline_mpls.log",
      "type": "build-log",
      "desc": "full MPLS-unpatched baseline kernel build (rc=0)"
    },
    {
      "path": "build.log",
      "type": "build-log",
      "desc": "injector build output"
    },
    {
      "path": "env.txt",
      "type": "environment",
      "desc": "uname, kern.version, kernel sha256, mpls symbols, route table"
    },
    {
      "path": "VERDICT.md",
      "type": "verdict",
      "desc": "full narrative: mechanism, reachability, fix, validation"
    },
    {
      "path": "README.md",
      "type": "readme",
      "desc": "human reproduce instructions"
    },
    {
      "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"
    }
  ]
}