DF-2624 / manifest.json
{ "finding_id": "DF-2624", "verdict": "reproduced", "impact": "panic", "reproduce": { "build": "guest: newfs_hammer2 -L testvol + hammer2 pfs-create /mnt/h2x/poison (build.sh); host: python3 forge_2624.py base2624.img craft2624.img", "run": "guest root: vnconfig -c vn0 craft2624.img; mount -o ro -t hammer2 /dev/vn0@testvol /mnt/h2x; hammer2 pfs-list /mnt/h2x", "expected": "hammer2_update_pmps pfsallocs EVERY PFS under sroot -> kstrdup walks the NUL-less filename off the end of the 64KB DIO buffer: silent adjacent-heap overread (observed instrumented length 772 = 4 bytes past the buffer) or fatal trap 12 'strlen() <- hammer2_pfsalloc+0x157' when the adjacent page is unmapped; fixed kernel: mount succeeds with a truncation warning" }, "kernel_refs": [ "sys/vfs/hammer2/hammer2_vfsops.c:495", "sys/vfs/hammer2/hammer2_vfsops.c:465-499", "sys/vfs/hammer2/hammer2_vfsops.c:1552-1571", "sys/vfs/hammer2/hammer2_disk.h:912-916", "sys/vfs/hammer2/hammer2_disk.h:1012" ], "artifacts": [ "forge_2624.py", "h2common.py", "run_2624.sh", "run_stock.log", "console_excerpts.txt", "fix.diff", "instr_build.log", "instr_build2.log", "instr_install.log", "fix_build.log", "fix_install.log", "env.txt", "README.md", "VERDICT.md", "build.sh", "run.sh", "manifest.json", "verdict.json" ] } |