DF-5456 / manifest.json
{ "finding_id": "DF-5456", "title": "umoscom cfg callbacks chain 14 sequential 1000 ms-timeout EP0 vendor requests with discarded errors on first open (4 param + 5 open + 3 line-state + 2 status): evil MCS7703 stretches one open(2) to ~14.2 s of uninterruptible ucom-taskqueue occupancy, blocks close(2) SIGKILL-immune, stalls the USB hub event thread on unplug; every later tcsetattr adds ~4.1 s (user-amplifiable)", "verdict": "reproduced", "impact": "dos", "confidence": "certain", "reproduce": { "build": "sh build.sh (in-tree kmod build on the guest: /usr/src/sys/bus/u4b/serial/mo5456 + make)", "run": "sh run.sh (kldload umoscomcfgstall.ko -- all phases at MOD_LOAD, ~38 s; kldunload; dmesg | grep MO5456)", "expected": "MO5456[A]: closer: unblocked ELAPSED=13922 ms (first-open chain); MO5456[2]: 17923 ms (+1 tcsetattr); MO5456[B]: 4109 ms (fix: abort on error); MO5456[C]: 1229 ms (fix: abort+250ms)" }, "kernel_refs": [ "sys/bus/u4b/serial/umoscom.c:441-493", "sys/bus/u4b/serial/umoscom.c:454", "sys/bus/u4b/serial/umoscom.c:457", "sys/bus/u4b/serial/umoscom.c:460", "sys/bus/u4b/serial/umoscom.c:492", "sys/bus/u4b/serial/umoscom.c:361-384", "sys/bus/u4b/serial/umoscom.c:368", "sys/bus/u4b/serial/umoscom.c:371", "sys/bus/u4b/serial/umoscom.c:377", "sys/bus/u4b/serial/umoscom.c:380", "sys/bus/u4b/serial/umoscom.c:383", "sys/bus/u4b/serial/umoscom.c:402", "sys/bus/u4b/serial/umoscom.c:415", "sys/bus/u4b/serial/umoscom.c:428", "sys/bus/u4b/serial/umoscom.c:495-522", "sys/bus/u4b/serial/umoscom.c:506", "sys/bus/u4b/serial/umoscom.c:507", "sys/bus/u4b/serial/umoscom.c:386-390", "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-880", "sys/bus/u4b/serial/usb_serial.c:671-672", "sys/bus/u4b/serial/usb_serial.c:955-957", "sys/bus/u4b/serial/usb_serial.c:1691-1693", "sys/bus/u4b/serial/usb_serial.c:394", "sys/bus/u4b/usb_request.c:642-644", "sys/bus/u4b/usb_request.c:699-704", "sys/bus/u4b/usb_process.c:385-393" ], "artifacts": [ "README.md", "VERDICT.md", "mo5456stall_harness.c", "gen_fixes.py", "Makefile", "build.sh", "run.sh", "build.log", "run.log", "env.txt", "fix.diff", "fix_compile.log", "umoscomcfgstall.ko", "manifest.json", "verdict.json" ] } |