{
  "finding_id": "DF-3212",
  "verdict": "reproduced",
  "impact": "leak",
  "kernel_refs": [
    "sys/vfs/ufs/ufs_readwrite.c:141",
    "sys/vfs/ufs/ufs_readwrite.c:142",
    "sys/vfs/ufs/ufs_readwrite.c:143",
    "sys/vfs/ufs/ufs_readwrite.c:147",
    "sys/vfs/ufs/ufs_readwrite.c:155",
    "sys/vfs/ufs/fs.h:487",
    "sys/vfs/ufs/ffs_subr.c:97",
    "sys/vfs/ufs/ffs_vfsops.c:642",
    "sys/vfs/ufs/ffs_vfsops.c:802",
    "sys/kern/vfs_bio.c:640"
  ],
  "reproduce": {
    "build": "cc -O -o craft_img craft_img.c && cc -O -o trigger trigger.c && cc -O -o trigger2 trigger2.c  (inside guest; see build.sh)",
    "run": "sh setup.sh (root: image + fs_qbmask 0x1fff->0x7ffff + mount -o noatime,noclusterr) ; su -m pwn -c '/tmp/trigger2 /mnt/test/leak.bin'",
    "expected": "stock kernel: preads at valid offsets return non-zero kernel memory (kernel .text/.rodata windows, other files' cached pages) or EFAULT; clean-fs control returns all zeros; fixed kernel: EIO on every invalid-geometry pread, control unchanged (15/15 zeros)"
  },
  "artifacts": [
    "README.md", "VERDICT.md", "craft_img.c", "trigger.c", "trigger2.c",
    "setup.sh", "run.sh", "build.sh",
    "run.control_and_trig1.log", "run2.trigger2.log",
    "fix_build.log", "fix_patched_mount.log", "fix_patched_run.log",
    "env.txt", "fix.diff", "manifest.json", "verdict.json"
  ]
}
