⬢ DragonFlyBSD Kernel Audit
DF-5305 / manifest.json
← back to finding ↓ download raw
{
  "finding_id": "DF-5305",
  "title": "strlcpy() from non-NUL-terminated VS_FORMAT_FRAME_BASED GUID: kernel heap OOB read past the cdesc allocation, disclosed to unprivileged userspace via VIDIOC_ENUM_FMT",
  "file": "sys/bus/u4b/uvc/uvc_drv.c",
  "verdict": "reproduced",
  "impact": "leak",
  "confidence": "certain",
  "reproduce": {
    "build": "see build.sh (KLD harness compiled on guest /root/build via make, includes real uvc sources from /usr/src)",
    "run": "see run.sh (kldload /root/build/uvcharness.ko; dmesg | tail -40)",
    "expected": "fmt->name strlen=63 with 36 bytes from beyond the 72-byte cdesc allocation (groom markers), ENUM_FMT description carries leaked bytes; post-fix strlen=16"
  },
  "kernel_refs": [
    "sys/bus/u4b/uvc/uvc_drv.c:1888",
    "sys/bus/u4b/uvc/uvc_drv.c:833",
    "sys/bus/u4b/uvc/uvc_drv.h:350",
    "sys/bus/u4b/uvc/uvc_v4l2.c:783",
    "sys/bus/u4b/usb_request.c:1366"
  ],
  "artifacts": [
    "README.md", "VERDICT.md", "uvcharness.c", "Makefile", "build.sh", "run.sh",
    "build.log", "run.log", "run.2.log", "run_patched.log", "fix.log",
    "leak_sample.txt", "env.txt", "fix.diff", "manifest.json", "verdict.json",
    "code_hash.txt"
  ]
}