{
  "finding_id": "DF-5496",
  "title": "umct cfg callbacks chain sequential synchronous 1000 ms-timeout EP0 vendor requests with discarded errors: an evil MCT/Belkin/Sitecom adapter stretches the first-open cycle to ~4.0 s and every tcsetattr (any rate, incl. B0 — no branch) to ~2.1 s of uninterruptible ucom-taskqueue occupancy, blocking close(2) SIGKILL-immune behind the queue (measured 5.95 s with one queued tcsetattr, 8.05 s with a 5-burst; a sustained loop extends without bound) and stalling the USB hub event thread on unplug (user-amplifiable)",
  "verdict": "reproduced",
  "impact": "dos",
  "evidence_class": "KLD-harness-with-production-code",
  "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",
  "reproduce": {
    "build": "sh build.sh   (cd /usr/src/sys/bus/u4b/serial/um5496 && make; artifact: umct5496stall.ko)",
    "run": "sh run.sh     (dmesg -c; kldload /root/df5496/umct5496stall.ko; kldunload; dmesg | grep UM5496 | tee /root/df5496/run.log)",
    "expected": [
      "UM5496[A]: closer: unblocked  ELAPSED=3885 ms  (first open: 3-req line-state task + 1-req HUPCL DTR drop; param bails !LL_READY)",
      "UM5496[2]: closer: unblocked  ELAPSED=5952 ms  (+ 1 tcsetattr: 2 reqs + hz/10 pause)",
      "UM5496[3]: closer: unblocked  ELAPSED=8049 ms  (+ burst of 5 tcsetattr coalesced to 2 param executions)",
      "UM5496[B]: closer: unblocked  ELAPSED=3033 ms  (fix: abort on first error)",
      "UM5496[C]: closer: unblocked  ELAPSED=834 ms   (fix: abort + 250 ms bound)"
    ]
  },
  "kernel_refs": [
    "sys/bus/u4b/serial/umct.c:314-339",
    "sys/bus/u4b/serial/umct.c:332-333",
    "sys/bus/u4b/serial/umct.c:334-337",
    "sys/bus/u4b/serial/umct.c:390-401",
    "sys/bus/u4b/serial/umct.c:400",
    "sys/bus/u4b/serial/umct.c:404-414",
    "sys/bus/u4b/serial/umct.c:413",
    "sys/bus/u4b/serial/umct.c:416-427",
    "sys/bus/u4b/serial/umct.c:426",
    "sys/bus/u4b/serial/umct.c:459-463",
    "sys/bus/u4b/serial/umct.c:465-504",
    "sys/bus/u4b/serial/umct.c:472",
    "sys/bus/u4b/serial/umct.c:503",
    "sys/bus/u4b/serial/usb_serial.c:322",
    "sys/bus/u4b/serial/usb_serial.c:671-672",
    "sys/bus/u4b/serial/usb_serial.c:694-696",
    "sys/bus/u4b/serial/usb_serial.c:771-778",
    "sys/bus/u4b/serial/usb_serial.c:801-903",
    "sys/bus/u4b/serial/usb_serial.c:842",
    "sys/bus/u4b/serial/usb_serial.c:865",
    "sys/bus/u4b/serial/usb_serial.c:874-880",
    "sys/bus/u4b/serial/usb_serial.c:939-957",
    "sys/bus/u4b/serial/usb_serial.c:394",
    "sys/bus/u4b/serial/usb_serial.c:1357-1420",
    "sys/bus/u4b/serial/usb_serial.c:1620-1637",
    "sys/bus/u4b/serial/usb_serial.c:1691-1693",
    "sys/bus/u4b/serial/usb_serial.h:220-221",
    "sys/bus/u4b/usb_request.c:561",
    "sys/bus/u4b/usb_request.c:643",
    "sys/bus/u4b/usb_request.c:700-704",
    "sys/bus/u4b/usb_process.c:259-331",
    "sys/bus/u4b/usb_process.c:364-393"
  ],
  "artifacts": [
    "README.md",
    "VERDICT.md",
    "um5496stall_harness.c",
    "Makefile",
    "build.sh",
    "run.sh",
    "build.log",
    "run.log",
    "fix_compile.log",
    "env.txt",
    "fix.diff",
    "manifest.json",
    "verdict.json"
  ]
}
