⬢ DragonFlyBSD Kernel Audit
DF-5425 / manifest.json
← back to finding ↓ download raw
{
  "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"
  ]
}