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