The BaseChainlinkFunctionsOracle::setDonId function lacks proper input validation, allowing the contract owner to set an empty DON ID (""). This can disrupt oracle functionality, leading to potential failures in fetching external data and affecting contracts relying on the oracle
The function setDonId updates the donId variable but does not verify whether the provided newDonId is empty.
If the owner mistakenly sets donId to an empty value (""), oracle requests relying on this identifier may fail, causing potential disruptions in the system.
Disrupted Oracle Operations: If an empty donId is set, the contract may fail to interact with Chainlink’s decentralized oracle network (DON), rendering the oracle ineffective
Failed External Data Requests: Any contract dependent on this oracle for real-time data (e.g., price feeds, off-chain computations) could be unable to retrieve necessary information
Increased Manual Intervention: Fixing the issue requires the owner to identify the problem and manually set a valid donId, potentially delaying critical operations.
Manual code review
To prevent this issue, add an input validation check in setDonId:
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.