DF-2291 / manifest.json
{ "finding_id": "DF-2291", "title": "crom_parse_text bounds check missing sizeof(u_int32_t) multiplier allows OOB heap read past ROM buffer", "evidence_class": "verbatim-code rig (guest has no FireWire hardware/KLD; production dispatch impossible)", "verdict": "reproduced", "reproduced": true, "impact": "leak", "confidence": "certain", "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", "production_parser_sha256": "b38ce9b52a249f594b4f11e0914eaa7fb6fbbccb0e174611d6a97f875f1466c5", "reproduce": { "build": "./build.sh", "run": "./run.sh", "expected": "BASELINE df2291_guard: OOB_FAULT_CONFIRMED (SIGSEGV at buffer_end+0, textleaf->text[3] at byte 1024); BASELINE df2291_canary: OOB_LEAK_CONFIRMED (output words c0ffee00..04 from bytes 1024..1043 land in the sdev->vendor-equivalent buffer); BASELINE control: PARSED_INBOUNDS; PATCHED both attack modes: NULLSTR_NO_FAULT (out=\"(null)\"); PATCHED control: PARSED_INBOUNDS" }, "kernel_refs": [ "sys/bus/firewire/fwcrom.c:207", "sys/bus/firewire/fwcrom.c:215-219", "sys/bus/firewire/fwcrom.c:459", "sys/bus/firewire/iec13213.h:148-159", "sys/bus/firewire/firewirereg.h:52-54", "sys/bus/firewire/firewire.c:1500", "sys/dev/disk/sbp/sbp.c:187", "sys/dev/disk/sbp/sbp.c:602-621", "sys/dev/disk/sbp/sbp.c:1527-1528" ], "artifacts": [ "fwcrom_rig.c", "build.sh", "run.sh", "build.log", "run.log", "run.2.log", "run.3.log", "fix.diff", "env.txt", "VERDICT.md", "README.md", "manifest.json", "verdict.json" ] } |