The withdraw(address target) function is marked external but lacks any form of access restriction. Anyone can invoke this function and potentially withdraw funds to an arbitrary address, which represents a critical security flaw.
Likelihood:
Reason 1 // No preconditions or authentication checks are required.
Reason 2 // Fully automatable and scalable by bots or malicious scripts.
Impact:
Impact 1 // Any attacker can call this function and redirect all contract funds to an arbitrary wallet.
Impact 2 // Breaks trust in the contract and any application depending on it.
Apply a strict access control modifier, or use AccessControl from openZeppline.
Never expose fund-handling functions (e.g., withdraw, transfer, mint) without strict access control.
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.