DF-0818 / manifest.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | { "finding_id": "DF-0818", "guest_uname": "DragonFly dfbsd 6.5-DEVELOPMENT DragonFly 6.5-DEVELOPMENT #0: Thu Jul 2 06:02:54 UTC 2026 root@dfbsd:/usr/obj/usr/src/sys/X86_64_GENERIC x86_64", "code_hash": "b9a306d0f9e7f73e4c245b4cc038294a3be6c13dd327ab55b89b5a9764a94a47", "tested_at": "2026-07-22T18:10:00Z", "verdict": "NOT REPRODUCED", "impact": "none", "confidence": "certain", "reproduce": { "build": "./build.sh", "run": "./run.sh", "expected": "no effect on this guest (not reproduced); exits cleanly. See VERDICT.md." }, "kernel_refs": [ "sys/vfs/hammer2/hammer2_bulkfree.c:727", "sys/vfs/hammer2/hammer2_bulkfree.c:593", "sys/vfs/hammer2/hammer2_ondisk.c:292", "sys/vfs/hammer2/hammer2_ondisk.c:352", "sys/vfs/hammer2/hammer2_ondisk.c:684", "sys/vfs/hammer2/hammer2_vfsops.c:1229", "sys/vfs/hammer2/hammer2_vfsops.c:1232", "sys/vfs/hammer2/hammer2_ioctl.c:144", "sys/vfs/hammer2/hammer2_ioctl.c:83", "sys/vfs/hammer2/hammer2_disk.h:261" ], "artifacts": [ { "path": "poc.c", "type": "trigger-source", "desc": "Unprivileged HAMMER2IOC_BULKFREE_SCAN ioctl exerciser; proves the unprivileged path is reachable but does not panic for any mountable image." }, { "path": "craft_zero.py", "type": "trigger-source", "desc": "Forges a CRC-valid HAMMER2 image with volu_size=0 (or any value) to demonstrate the upstream rejection at hammer2_ondisk.c:292." }, { "path": "build.sh", "type": "build-script", "desc": "cc -o poc poc.c -I/usr/src/sys" }, { "path": "run.sh", "type": "run-script", "desc": "./poc /mnt/h2/trigger as the unprivileged maxx user" }, { "path": "fix.diff", "type": "suggested-fix", "desc": "Defense-in-depth zero-guard at hammer2_bulkfree.c:727 (supersedes finding proposal, same shape with comment)." }, { "path": "VERDICT.md", "type": "verdict", "desc": "Full narrative with line-by-line source trace." }, { "path": "README.md", "type": "readme", "desc": "Folder overview and reproduce instructions." }, { "path": "build.log", "type": "build-log", "desc": "Final cc build output as maxx." }, { "path": "run.log", "type": "run-log", "desc": "Baseline PoC run on unpatched 6.5-DEVELOPMENT #0; rc=0, sstop=134217728, no panic." }, { "path": "run_patched.log", "type": "run-log", "desc": "PoC run on patched #1 kernel; identical behavior (fix is a no-op for valid sizes)." }, { "path": "mount_reject.log", "type": "dmesg", "desc": "Demonstrates volu_size=0 image is rejected at hammer2_ondisk.c:292 ('has size of 0')." }, { "path": "fix_build.log", "type": "build-log", "desc": "Full untrimmed patched-kernel nativekernel build log (NK_DONE rc=0)." }, { "path": "incidental_panic.txt", "type": "panic-signature", "desc": "UNRELATED panic (sysref assertion in devfs teardown) hit while unmounting an invalid HAMMER2 image -- NOT DF-0818." }, { "path": "env.txt", "type": "environment", "desc": "uname, cc version, sysctls." }, { "path": "manifest.json", "type": "manifest", "desc": "This file." }, { "path": "fix_apply.log", "type": "apply-log", "desc": "patch --dry-run output proving fix.diff applies cleanly on with-src" }, { "path": "../fix_build_combined.log", "type": "build-log", "desc": "Combined 41-finding kernel build (rc=0, -Werror clean)" }, { "path": "../fix_build_summary.txt", "type": "build-summary", "desc": "Summary of the combined 41-finding kernel build" } ] } |