Description
Repro: Security and Evidence workflow run 36316147544, Clang/libFuzzer reporting corpus, ASan heap-buffer-overflow at src/mms/reporting.cpp:141 in decode_bit_field.
Root cause: a one-byte raw BIT STRING with an unused-bit count 1..7 yields zero payload bits; unsigned payload_bytes*8-unused underflows and the decoder reads outside the byte vector. The fuzzer found this while exercising report inclusion/option fields.
Fix must be isolated from GUI PR #130 and must fail closed on malformed BIT STRING. Add regression for empty payload with nonzero unused count and zero-payload valid empty field; rerun test_reporting and sanitizer fuzz corpus. Do not weaken/skip Security and Evidence.
2026-10-23 cleanup disposition
Resolved in current main and preserved in #286: src/mms/reporting.cpp::decode_bit_field rejects unused > payload_bits before subtraction; tests/test_reporting.cpp::empty_payload_bit_string_unused_bits_fail_closed exercises malformed empty payload for option fields/inclusion, with valid padding retained. Close this already-fixed security issue; regression test remains, no code deletion.
Activity