The protocol allows Santa to call checkList even after checkTwice has already been completed. This creates a state regression vulnerability where a finalized decision can be accidentally overwritten with a weaker classification. In the provided POC, Santa correctly assigns EXTRA_NICE twice, but a subsequent mistaken call to checkList downgrades the user to NICE, making them ineligible for rewards.
This issue is not malicious but operationally dangerous. It assumes perfect operational discipline from Santa and provides no guardrails to prevent human error. Once the overwrite occurs, the user permanently loses access to their reward, despite having been validly approved earlier. There is no recovery mechanism.
From a protocol perspective, finalized states should be immutable or at least protected against regression. The absence of state validation violates this principle and introduces unnecessary trust risk.
Likelihood:
Medium. Requires operator error but is plausible in real usage.
Impact:
High. Legitimate users can permanently lose rewards due to admin mistakes.
Please add this POC on the test file
Consider add the require / if statement to validate the second choice already entered
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.