{ "item_id": "ker-mldsa_hint", "kernel": "mldsa_hint", "advisory": "RUSTSEC-2026-0076", "crate": "libcrux-ml-dsa", "pre_version": "0.0.7", "post_version": "0.0.8", "advisory_url": "https://github.com/cryspen/libcrux/pull/1348", "title": "Panic in Signature Hint Decoding During Verification", "source_file": "src/encoding/signature.rs", "function": "hint_weight", "signature": "pub fn hint_weight(hint: &[u8], max_ones: usize, rows: usize) -> Option", "spec_doc": "Decodes the ML-DSA signature hint encoding: hint[..max_ones] are positions, hint[max_ones..max_ones+rows] are cumulative counts that must be non-decreasing and at most max_ones. Returns the sum of the hint bytes it consumed, or None for a malformed encoding. Must never panic on any input of length >= max_ones+rows.", "bug_class": "panic", "fidelity": "verbatim_logic", "extraction_note": "src/ml_dsa_generic.rs / encoding/signature.rs deserialize hint: checked previous instead of current against max_ones", "witness_args": "&[0u8, 0, 200], 2usize, 1usize", "labels": { "buggy": "libcrux-ml-dsa@0.0.7", "reference": "libcrux-ml-dsa@0.0.8" } }