Rock Paper Scissors

First Flight #38
Beginner FriendlySolidity
100 EXP
View results
Submission Details
Severity: low
Invalid

Missing Event Emission on Admin Change Reduces Transparency and Off-Chain Traceability

Summary

The RockPaperScissors::setAdmin function allows updating the admin address but does not emit an event to record this change. This reduces transparency and makes it harder to track admin changes off-chain, which can hinder monitoring and auditing efforts. Emitting an event is a best practice for important state changes, especially for privileged roles.

Vulnerability Details

Found 1 Instances in src/RockPaperScissors.sol [Line: 477](src/RockPaperScissors.sol#L477)

function setAdmin(address _newAdmin) external {}

Impact

Lack of an event for admin changes makes it difficult for external systems, auditors, or users to detect and track critical role transitions, potentially hiding unauthorized or malicious admin updates.

Tools Used

  • Foundry

Recommendations

Emit an AdminUpdated event whenever the admin address is changed. This ensures transparency, supports off-chain monitoring, and maintains a reliable audit trail for administrative changes.

+ event AdminUpdated(address indexed previousAdmin, address indexed newAdmin);
..
..
function setAdmin(address _newAdmin) external {
require(msg.sender == adminAddress, "Only admin can set new admin");
require(_newAdmin != address(0), "Admin cannot be zero address");
+ address oldAdmin = adminAddress;
adminAddress = _newAdmin;
+ emit AdminUpdated(oldAdmin, _newAdmin);
}
Updates

Appeal created

m3dython Lead Judge 4 months ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity
Assigned finding tags:

Informational

Code suggestions or observations that do not pose a direct security risk.

m3dython Lead Judge 4 months ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity
Assigned finding tags:

Informational

Code suggestions or observations that do not pose a direct security risk.

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.