Unencrypted Password storage
Currently plain string is being used to store the password, which means it lacks for encryption. Anybody can access it easily from it's storage. Most explorer like etherscan, store the function params when called, any normal user can decode it.
Developers can check the storage layout and call the storage slot location of contract to get the value easily.
suppose contract is deployed on mainnet and contract address is 0x123, then password value can accessed easily by using this command in foundry.
The lack of encryption puts the stored password at risk of exposure. Which can cause potential harm to protocol if password is being used in dependent or other protocol.
Manual Review & Foundry
encrypt the password off-chain and store the output hash on chain.
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.