The state variable s_password is private but the value can still be accessed reading the specific storage slot (slot 1 in this case).
The password is readable on-chain, hence, can be accessed anytime.
Making it private don't prevent it from being read externally.
Here is a Proof of Concept unit test demonstrating the issue (add it to PasswordStoreTest.t.sol):
Reading the password gives the attacker the ability to access funds or sensitive information.
Manual review.
Storing a password on-chain is considered bad practice.
Everything you put on-chain is visible.
You should not store it in plaintext or eventually store the encrypted or hashed version.
But other problems arise such as rainbow tables ecc.
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.