{
 "finding_id": "DF-2369",
 "status": "reproduced",
 "reproduced": 1,
 "impact": "none",
 "confidence": "certain",
 "verdict": "Real in-kernel rijndael KPI, MODE_CFB1, two blocks (inputLen=256 bits): rijndael_blockEncrypt returns 256 claiming two produced blocks while out[16..31] stays at its pre-planted sentinel - the per-block loop never advances input/outBuffer (every other mode in the same function does), so encrypting leaves plaintext blocks 2..n in the ciphertext output and decrypt leaves out[16..] stale; the inner loop also re-reads input[0..15] each outer pass. With the pointer advance both blocks are processed (ct[16..31] now ciphertext, decrypt writes through block 2). The ECB KAT control of the same KPI matches FIPS-197; the legacy CFB1 path has no in-tree caller (cryptosoft never selects MODE_CFB1) - latent correctness/assurance defect, confirmed as filed.",
 "exploit_chain": "",
 "evidence": "session baseline (ct[16..31] = e7*16 sentinel INTACT, rc=256; decrypt stale) vs run_fixed_kernel.log (ct[16..31] = 40 24 d0 ..., decrypt changed), fix.diff",
 "kernel_refs": [
  "sys/crypto/rijndael/rijndael-api-fst.c:153",
  "sys/crypto/rijndael/rijndael-api-fst.c:186",
  "sys/crypto/rijndael/rijndael-api-fst.c:324",
  "sys/crypto/rijndael/rijndael-api-fst.c:357"
 ],
 "poc_changes": "initial ECB KAT used raw key bytes where the legacy makeKey API wants ASCII hex keyMaterial - the FIPS vector now matches",
 "attempts": 3,
 "guest_uname": "DragonFly dfbsd 6.5-DEVELOPMENT #5 DFBATCH Wed Oct 21 21:27:34 UTC 2026 root:/usr/obj/usr/src/sys/DFBATCH x86_64 (rig kernel); stock baseline #0 X86_64_GENERIC",
 "runtime_sec": 400,
 "guest_dirty": 0,
 "build_cmd": "kernel-compiled rig (DFBATCH)",
 "run_cmd": "sysctl debug.dfbatch.cmd=\"crypto 2369:<kat|cfb1>\"",
 "code_hash": "c872cf8f02a063d7e322cc53b4bf4154de47b7e3ebfae04a72e8b297023c5746",
 "notes": "fix validated A/B on the same rig: baseline behavior gone post-patch (see run_fixed* logs); rig kernel = X86_64_GENERIC + device dfbatch, INVARIANTS kept",
 "recommended_fix": "advance input/outBuffer per block in both CFB1 loops"
}