DF-5305 / manifest.json
{ "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" ] } |