DF-2635 / manifest.json
{ "finding_id": "DF-2635", "title": "iroot meta.inum overwritten from media after inum-hash insertion — hammer2_inode_drop walks off the wrong bucket (NULL deref panic at unmount) plus inode aliasing", "verdict": "reproduced", "impact": "panic", "reproduce": { "build": "python3 forge_2635.py h2base.img craft2635.img (host; flips PFS-root meta.inum 1->0x42, CHECK_NONE ancestors, volhdr CRC32C recompute)", "run": "sh run.sh (guest root: vnconfig; mount_hammer2 /dev/vn1@testvol /mnt/h2635; ls; write; sync; umount)", "expected": "mount/ls/write/sync succeed; umount panics: 'Fatal trap 12 ... fault virtual address = 0x0 ... Stopped at hammer2_inode_drop+0x1e3' (current process umount)" }, "kernel_refs": [ "sys/vfs/hammer2/hammer2_inode.c:592-656", "sys/vfs/hammer2/hammer2_inode.c:617", "sys/vfs/hammer2/hammer2_inode.c:624-625", "sys/vfs/hammer2/hammer2_inode.c:933", "sys/vfs/hammer2/hammer2_inode.c:954-977", "sys/vfs/hammer2/hammer2_vfsops.c:453-459", "sys/vfs/hammer2/hammer2_vfsops.c:1975", "sys/vfs/hammer2/hammer2_vfsops.c:707-711" ], "artifacts": [ "forge_2635.py", "run.sh", "panic.txt", "run.log", "build.log", "env.txt", "fix.diff", "README.md", "VERDICT.md", "verdict.json", "fix_build.log", "fix_run.log", "manifest.json" ] } |