DF-2269 / manifest.json
{ "finding_id": "DF-2269", "verdict": "reproduced", "impact": "leak", "confidence": "certain", "reproduce": { "build": "cd findings/poc/DF-2269 && ./build.sh (sha256-gated verbatim scsi_cd.c harness TU, full nativekernel, installkernel, reboot)", "run": "./run.sh (sysctl debug.df2269.matrix=1 / formats=1 / leak=1 / repeat=10; dmesg | grep DFH2269)", "expected": "unpatched: every device response with transferred<4 or resid>length-4 returns success with dvd_struct.length=0xffffffxx and a 2048-byte bcopy out of the small databuf (2044 bytes past the 8-byte MEDIUM_STAT buffer): leaked data[] contains pre-placed canary chunks and kernel heap pointers (zone free-list linkage); formats with len>=2052 report the wrapped length but stay in bounds; fixed: identical battery returns EIO on all underflow rows with zero leaked bytes, sane transfers bit-identical (fnv1a match)" }, "kernel_refs": [ "sys/bus/cam/scsi/scsi_cd.c:4288", "sys/bus/cam/scsi/scsi_cd.c:4289", "sys/bus/cam/scsi/scsi_cd.c:4295", "sys/bus/cam/scsi/scsi_cd.c:4297", "sys/bus/cam/scsi/scsi_cd.c:4207", "sys/bus/cam/scsi/scsi_cd.c:4208", "sys/bus/cam/scsi/scsi_cd.c:4122", "sys/bus/cam/scsi/scsi_cd.c:4226", "sys/bus/cam/scsi/scsi_cd.c:1006", "sys/bus/cam/scsi/scsi_cd.c:2751", "sys/bus/cam/cam_ccb.h:607", "sys/sys/dvdio.h:58", "sys/kern/sys_generic.c:668", "sys/kern/sys_generic.c:725", "sys/vfs/devfs/devfs_vnops.c:1569", "sys/kern/kern_device.c:237" ], "artifacts": [ "README.md", "VERDICT.md", "df_pre.c", "df_post.c", "gen.sh", "build.sh", "quick.sh", "run.sh", "run_fixed.sh", "build.log", "build_driver.log", "quickkernel.log", "installkernel.log", "gen.log", "rig_iteration1_bootpanic.txt", "run_matrix.log", "run_formats.log", "run_leak.log", "run_repeat.log", "run_dmesg.log", "run_dmesg_full.txt", "run_fixed_matrix.log", "run_fixed_formats.log", "run_fixed_leak.log", "run_fixed_repeat.log", "run_fixed_dmesg.log", "run_fixed_currentboot.txt", "leak_sample_boot1.txt", "leak_sample_boot2.txt", "leak_boot2_summary.txt", "env.txt", "fix.diff", "manifest.json", "verdict.json" ] } |