The contract stores a confirmation counter in the Transaction struct and separately tracks individual signer confirmations in the s_signatures nested mapping.
During execution, the contract only checks the counter txn.confirmations >= REQUIRED_CONFIRMATIONS without validating that these confirmations are from current valid signers. This is gas-inefficient for verification and can lead to state inconsistencies.
Likelihood:
When executing any transaction, the contract performs a simple counter check that may not reflect the current valid signer set
This redundant storage (counter + mapping) increases gas costs for confirmations and revocations
Impact:
Slightly higher gas costs for all confirmation and revocation operations
Risk of counter becoming out-of-sync with actual valid signatures (as shown in MEDIUM finding above)
Unnecessary storage slot usage
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.