Despite being private
the s_password
variable is still publicly viewable and saved in plain text making the protocol a very poor choice to securely store passwords.
By calling load() on the contract's storage slot for s_password, anyone is able to view the stored value.
Results in:
Anyone can access the password value at any time, compromising whatever the password was meant to protect.
Manual Review
Foundry
Require the setPassword and getPassword functions to require a shared input param in order to encrypt/decrypt the stored password value.
Private functions and state variables are only visible for the contract they are defined in and not in derived contracts. In this case private doesn't mean secret/confidential
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.