DF-3584 / manifest.json
{ "finding": "DF-3584", "title": "isp_control() ISPCTL_RESET_DEV/ABORT_CMD index fcp->isp_dev_map[tgt] without validating tgt; caller packs bus<<16 so channel>0 BDR reads ~108 KB out of bounds", "verdict": "inconclusive", "impact": "none-observed (wild kernel read / panic on multi-channel hardware)", "reproduce": { "build": "mkdir -p dev/disk/isp && cp /usr/src/sys/dev/disk/isp/{isp_stds.h,ispmbox.h,ispreg.h,ispvar.h} dev/disk/isp/ && cc -Wall -I. -o trigger_df3584 trigger_df3584.c", "run": "./trigger_df3584", "expected": "FAULT at base+151608 — 108456 bytes past the 43152-byte 2-channel fcparam allocation" }, "kernel_refs": [ "sys/dev/disk/isp/isp.c:4509-4529", "sys/dev/disk/isp/isp.c:4617-4631", "sys/dev/disk/isp/isp.c:4247-4254", "sys/dev/disk/isp/isp_freebsd.c:4517-4523" ], "artifacts": [ "trigger_df3584.c", "build.sh", "run.sh", "build.log", "run.log", "VERDICT.md", "verdict.json", "fix.diff", "manifest.json" ] } |