vielite's blog

QA-08: Txpool Admission Ignores Value and max_fee_per_gas

March 26, 2026
0 min read
Table of Contents
monad-qa-08-txpool-admission-ignores-solvency

Summary

The txpool admission path compares sender balance only against last_commit_base_fee * gas_limit and does not account for transaction value or max_fee_per_gas.

Vulnerability details

2025-09-monad/bft/monad-eth-txpool/src/pool/mod.rs
let last_commit_base_fee = last_commit.execution_inputs.base_fee_per_gas;
for tx in txs {
if account_balances
.get(tx.signer_ref())
.is_none_or(|account_balance_state| {
account_balance_state.balance
< last_commit_base_fee.saturating_mul(tx.gas_limit())
})
{
event_tracker.drop(tx.hash(), EthTxPoolDropReason::InsufficientBalance);
continue;
}

Impact

The pool can admit transactions that are insolvent under the normal Ethereum-style upfront cost check, causing mempool pollution and proposer inefficiency.

Recommendation

Align admission checks with full upfront solvency requirements.