{
  "finding_id": "DF-5476",
  "title": "ubsa cfg callbacks chain synchronous 1000 ms-timeout EP0 vendor requests with discarded errors: evil Belkin/eTek/GoHubs/Peracom adapter stretches every tcsetattr to 5.1 s (7.1 s for B0) and first-open line-state cycle to 3.0 s of uninterruptible ucom-taskqueue occupancy, blocking close(2) SIGKILL-immune (measured 9.97 s with one queued B0 tcsetattr) 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/ub5476 && make; artifact: ubsa5476stall.ko)",
    "run": "sh run.sh     (kldload /root/df5476/ubsa5476stall.ko; kldunload; dmesg | grep UB5476)",
    "expected": [
      "UB5476[A]: closer: unblocked  ELAPSED=2877 ms  (first open: 3-req line-state task; param bails !LL_READY)",
      "UB5476[2]: closer: unblocked  ELAPSED=7893 ms  (+ 1 tcsetattr@9600: 5 reqs + pause)",
      "UB5476[0]: closer: unblocked  ELAPSED=9974 ms  (+ 1 tcsetattr@B0: 7 reqs + pause)",
      "UB5476[B]: closer: unblocked  ELAPSED=2035 ms  (fix: abort on first error)",
      "UB5476[C]: closer: unblocked  ELAPSED=557 ms   (fix: abort + 250 ms bound)"
    ]
  },
  "kernel_refs": [
    "sys/bus/u4b/serial/ubsa.c:346-365",
    "sys/bus/u4b/serial/ubsa.c:359-360",
    "sys/bus/u4b/serial/ubsa.c:361-364",
    "sys/bus/u4b/serial/ubsa.c:374",
    "sys/bus/u4b/serial/ubsa.c:384",
    "sys/bus/u4b/serial/ubsa.c:394",
    "sys/bus/u4b/serial/ubsa.c:424-492",
    "sys/bus/u4b/serial/ubsa.c:433-435",
    "sys/bus/u4b/serial/ubsa.c:449",
    "sys/bus/u4b/serial/ubsa.c:460",
    "sys/bus/u4b/serial/ubsa.c:478",
    "sys/bus/u4b/serial/ubsa.c:482",
    "sys/bus/u4b/serial/ubsa.c:491",
    "sys/bus/u4b/serial/ubsa.c:535-543",
    "sys/bus/u4b/serial/usb_serial.c:322",
    "sys/bus/u4b/serial/usb_serial.c:671-672",
    "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:1626-1628",
    "sys/bus/u4b/serial/usb_serial.c:1636",
    "sys/bus/u4b/serial/usb_serial.c:1691-1693",
    "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:364-393"
  ],
  "artifacts": [
    "ub5476stall_harness.c",
    "Makefile",
    "build.sh",
    "run.sh",
    "README.md",
    "VERDICT.md",
    "build.log",
    "run.log",
    "fix.diff",
    "fix_compile.log",
    "ubsa5476stall.ko",
    "env.txt",
    "manifest.json",
    "verdict.json"
  ],
  "fix": {
    "status": "fixed",
    "mechanism": "UBSA_CFG_TIMEOUT 250 ms bound + ubsa_cfg_request() returns usb_error_t + ubsa_cfg_param() aborts on first failed request",
    "validated_by": "run.log phases B/C (9974 -> 2035 -> 557 ms); fix_compile.log (9/9 hunks, patched production ubsa.ko, zero compiler warnings)"
  }
}
