bitcoinfuzz
bitcoinfuzz copied to clipboard
BlockTransactionRequest: Non-conformity of BIP-152 in rust bitcoin
I got a crash in BlockTransactionRequest deserialization target as rust-bitcoin does not conform to BIP-152 and treats indexes as uint64_t values when according to BIP and Core, they should be treated as uint16_t values.
This also makes it possible to theoretically create a non-conformant BlockTransactions
/BlockTxn
message with more than U16_MAX transactions in a Block. ("Theoretically" because I am not sure whether a node would have a Block with such a large number of transactions anyway)
I think at the bare minimum, rust-bitcoin should return an error with an index greater than u16 max while deserializing a BlockTransactionRequest.