The deployment script utilizes vm.envUint("PRIVATE_KEY") to load the deployer's cryptographic credentials directly from the local environment. This pattern typically implies that the private key is stored in a .env file or exported as an environment variable in the terminal.
Because these files and shell histories are stored in plaintext, the most sensitive piece of information in the protocol (The private Key) is left unencrypted on the disk.
Likelihood:
The likelihood is high because developers frequently commit .env files to version control (GitHub) by mistake, or leave them on shared development machines.
CI/CD pipelines (like GitHub Actions) log environment variables by default, potentially exposing the key in build logs accessible to the entire organization.
Impact:
An attacker can drain the initialFunding (100 ETH) before the script even finishes.
The attacker can become the owner of the TreasureHunt contract, allowing them to withdraw future funds or disrupt the game.
This test proves that if a private key is loaded into the environment, it is "visible" to the execution context, making it easy for malicious scripts or accidental logs to expose it.
To mitigate the Private Key Exposure issue, the goal is to remove the private key from the Solidity code and environment variables entirely.
The script should only focus on the deployment logic.
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.
The contest is complete and the rewards are being distributed.