The PasswordStore::setPassword()
function lets any user change the password because of missing access control. This breaks core contract functionality because only the owner should be able to set a password.
Like the code comments specify, only the owner should be able to set a new password. Because there are no checks at all, requiring the msg.sender to be the owner, core contract functionality gets broken allowing any user to set a password.
Any user can set a password.
PoC: (just add this test)
manual analysis
add access control to the function:
Anyone can call `setPassword` and set a new password contrary to the intended purpose.
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.