DF-5787 / manifest.json
{ "finding_id": "DF-5787", "title": "vfs_bio.c: stale b_bio1.bio_flags survive buffer-cache recycling (no kernel-side BIO_DONE hygiene)", "verdict": "reproduced", "impact": "panic", "confidence": "certain", "severity": "Low", "reproduce": { "build": "guest: mkdir -p /root/biopoison; cp biopoison.c Makefile; make (SYSDIR=/usr/src/sys)", "run": "guest: kldload /root/biopoison/biopoison.ko ; observe serial console (dfbsd-qemu/vm.sh log)", "expected": "control case: 'bread returned 0 (no panic)'; poison case: panic: assertion \"(bio->bio_flags & BIO_DONE) == 0\" failed in vn_strategy at /usr/src/sys/kern/vfs_bio.c:3385 (baseline kernel); with fix.diff kernel: both cases return 0, no panic" }, "kernel_refs": [ "sys/kern/vfs_bio.c:2095", "sys/kern/vfs_bio.c:747", "sys/kern/vfs_bio.c:919", "sys/kern/vfs_bio.c:989", "sys/kern/vfs_bio.c:883", "sys/kern/vfs_bio.c:3261", "sys/kern/vfs_bio.c:3385" ], "artifacts": [ "README.md", "VERDICT.md", "biopoison.c", "Makefile", "build.sh", "run.sh", "build.log", "run.log", "panic.txt", "fix_run.log", "fix_build.log", "env.txt", "fix.diff", "verdict.json", "manifest.json" ] } |