answeredInRound and omits round_id/started_at validationSeverity: Low · Impact: Low · Likelihood: Low
A robust Chainlink freshness check should confirm the round actually started and completed and use non-deprecated fields.
oracle_lib validates answered_in_round >= round_id — a field Chainlink has deprecated and which no longer carries meaning on many feeds — while not checking round_id != 0 or started_at != 0.
Likelihood:
Occurs on feeds where answeredInRound is not populated meaningfully, making the assertion a no-op that provides false assurance of freshness.
Impact:
Incomplete round validation can let a not-yet-finalized or malformed round through, feeding a bad price into collateral valuation.
Save the block below as tests/poc_l4.py inside the cloned repo and run mox test tests/poc_l4.py. A malformed round with round_id == 0 and started_at == 0 (a round that never properly started) is accepted and used, because the check only tests answered_in_round >= round_id (0 >= 0, always true) and never validates round_id or started_at.
Drop the deprecated answeredInRound comparison and validate the round explicitly.
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.