if the s_isSigner mapping and the s_signers array were ever to become inconsistent, the removal logic could:
Attempt to operate on an invalid array index
Corrupt the s_signers array
Leave signer state in an inconsistent or undefined condition
The 'revokeSigningRole' function removes a signer by first checking the signer's index in the s_signers array before actually removing the signer. While the function checks s_isSigner[_account] before proceeding, it does not explicitly verify that the signer's index was successfully found in the array.
If the index is not found, indexToRemove remains set to type(uint256).max, and the function continues execution without reverting.
Likelihood:
Lets say a previous function or transaction incorrectly modifies the contract's state, it is possible that the s_isSigner mapping marks an address as a signer, but the address is not added or removed from the s_signers array
Impact:
Attempt to operate on an invalid array index
corrup the s_signers array
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.