deployerAddressThe deployment script calls vm.startBroadcast() without specifying a signer. That means the broadcast uses Foundry’s default signer (typically the first wallet), which may not match the intended owner role described in the README.
NOTE: The TokenLaunchHook does not implement the owner role in the contract, which has been documented in a separate finding and also needs to be fixed.
Additionally, BaseScript derives a deployerAddress but never uses it for broadcasting; getDeployer() just returns the first address from vm.getWallets.
Likelihood:
Every deployment using this script is affected (unless the Foundry signer is explicitly configured elsewhere)
Impact:
If ownership is added, whoever runs the script becomes owner, which may not match the intended owner role from the README
Source the deployer from environment configuration (private key or address), and use it explicitly in vm.startBroadcast. Keep or remove getDeployer() depending on whether you still need address derivation.
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.