File size: 1,227 Bytes
4951e76 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | {
"item_id": "ker-bcrypt_split",
"kernel": "bcrypt_split",
"advisory": "RUSTSEC-2026-0199",
"crate": "bcrypt",
"pre_version": "0.19.1",
"post_version": "0.19.2",
"advisory_url": "https://github.com/Keats/rust-bcrypt/pull/103",
"title": "Panic in `bcrypt::verify` on non-ASCII hash input",
"source_file": "src/lib.rs",
"function": "split_hash_salt_len",
"signature": "pub fn split_hash_salt_len(hash: &[u8]) -> Result<usize, u8>",
"spec_doc": "Validates a bcrypt hash string and returns the salt length (22). A valid hash is exactly 60 ASCII bytes; every other input must give Err, never panic.",
"bug_class": "panic",
"fidelity": "model_of_std",
"extraction_note": "src/lib.rs split_hash: &str slicing at a non-char-boundary on non-ASCII 60-byte input",
"witness_args": "&[b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', 0xA3, b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a', b'a']",
"labels": {
"buggy": "bcrypt@0.19.1",
"reference": "bcrypt@0.19.2"
}
} |