DF-0924 / 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 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | { "finding_id": "DF-0924", "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": "REPRODUCED", "impact": "dos", "confidence": "certain", "reproduce": { "build": "./build.sh", "run": "./run.sh # timing demo (safe); ./run.sh starve # panics unpatched kernel", "expected": "guest hang/wedge (DoS); see run.log. On a fixed kernel: returns promptly." }, "kernel_refs": [ "sys/vfs/procfs/procfs_map.c:61", "sys/vfs/procfs/procfs_map.c:75", "sys/vfs/procfs/procfs_map.c:77", "sys/vfs/procfs/procfs_map.c:245", "sys/kern/subr_sbuf.c:178", "sys/kern/subr_sbuf.c:197", "sys/kern/kern_kmalloc.c:706" ], "artifacts": [ { "path": "alloc_dos.c", "type": "trigger-source", "desc": "rewritten PoC: --time (timing proof) and --starve N S (concurrent-allocation panic) modes" }, { "path": "README.md", "type": "readme", "desc": "original PoC README (build/run/expected)" }, { "path": "build.sh", "type": "build-script", "desc": "cc -O2 -o alloc_dos alloc_dos.c" }, { "path": "run.sh", "type": "run-script", "desc": "./alloc_dos --time (default) or ./alloc_dos --starve 4 8 (with 'starve' arg)" }, { "path": "build.log", "type": "build-log", "desc": "final successful build, full output" }, { "path": "run.log", "type": "run-log", "desc": "decisive baseline timing run (2.5s huge resid)" }, { "path": "run.baseline.log", "type": "run-log", "desc": "baseline --time on unpatched #0 (2.75s huge resid)" }, { "path": "run.patched.log", "type": "run-log", "desc": "patched #1 --time (1.45ms huge resid)" }, { "path": "run.patched.2.log", "type": "run-log", "desc": "patched #1 --time repeat (4.86ms)" }, { "path": "run.patched.3.log", "type": "run-log", "desc": "patched #1 --time repeat (3.25ms)" }, { "path": "run.patched.starve.log", "type": "run-log", "desc": "patched #1 --starve 4 8 (no panic, freemem flat)" }, { "path": "starve.log", "type": "run-log", "desc": "baseline --starve attempt (ssh died as guest panicked)" }, { "path": "panic.txt", "type": "panic-signature", "desc": "panic: sbuf: malloc limit exceeded; stack procfs_domap->sbuf_new->kmalloc" }, { "path": "boot_panic.log", "type": "boot-log", "desc": "full serial boot.log captured at panic" }, { "path": "env.txt", "type": "environment", "desc": "uname, kern.version, cc version, procfs mount, patched-kernel sha256" }, { "path": "fix.diff", "type": "suggested-fix", "desc": "git-apply-able: cap buflen at 1MiB (PROCFS_MAP_MAXBUF) before sbuf_new" }, { "path": "fix_build.log", "type": "build-log", "desc": "first single-fix kernel build (rc=0)" }, { "path": "VERDICT.md", "type": "verdict", "desc": "full narrative: mechanism, before/after evidence, fix validation" }, { "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" } ] } |