DF-5496 / manifest.json
{ "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" ] } |