bitcoinfuzz icon indicating copy to clipboard operation
bitcoinfuzz copied to clipboard

BlockTransactionRequest: Non-conformity of BIP-152 in rust bitcoin

Open hax0kartik opened this issue 7 months ago • 3 comments

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.

hax0kartik avatar Jul 06 '24 12:07 hax0kartik