Anyone can read the password from the contract via low-level storage read.
Even though it was marked with private
and other smart contract address can't read via getter function, this can be circumvent offchain with simulated contract read that has owner as tx.origin or using low-level contract read.
as example, here is the code used with ethers.js v5
await provider.getStorageAt(
The storage slot is 1 because password is a second storage variable declared in the code.
High
ethers.js
Don't store sensitive data on the blockchain!
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.