DF-5425 / manifest.json
{ "finding_id": "DF-5425", "title": "uslcom cfg callbacks chain 3+1+1 sequential 1000 ms-timeout EP0 vendor requests with discarded errors: evil CP210x stretches every tcsetattr to ~3.1 s and every open/param/close cycle to ~5.2 s of uninterruptible ucom-taskqueue occupancy, blocking close(2) (~8.2 s with two queued tsetattrs) and stalling the USB hub event thread on unplug (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/sl5425 + make, -Werror clean)", "run": "sh run.sh (kldload uslcomcfgstall.ko; kldunload; dmesg | grep SL5425)", "expected": "SL5425[A]: closer: unblocked ELAPSED=5078/5090 ms (open+1 tcsetattr); SL5425[2]: 8141/8094 ms (open+2 tcsetattrs); SL5425[B]: 3149/3121 ms (fix abort); SL5425[C]: 899/925 ms (fix abort+250ms)" }, "kernel_refs": [ "sys/bus/u4b/serial/uslcom.c:505-583", "sys/bus/u4b/serial/uslcom.c:514-523", "sys/bus/u4b/serial/uslcom.c:551-560", "sys/bus/u4b/serial/uslcom.c:573-582", "sys/bus/u4b/serial/uslcom.c:418-421", "sys/bus/u4b/serial/uslcom.c:442-445", "sys/bus/u4b/serial/uslcom.c:315-326", "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", "uslcom_cfgstall_harness.c", "Makefile", "build.sh", "run.sh", "build.log", "run.log", "run.2.log", "fix.diff", "fix_compile.log", "env.txt", "manifest.json", "verdict.json" ] } |