Dria

Swan
NFTHardhat
21,000 USDC
View results
Submission Details
Severity: high
Valid

Variance calculation can completely halt the protocol's core validation functionality

Summary

A critical Denial of Service (DOS) vulnerability exists in the Statistics library's variance calculation that can completely halt the protocol's core validation functionality. When validators submit scores below the mean, the entire transaction will revert, making task validation impossible (finalizeValidation).

Vulnerability Details

In Statistics.sol:

function variance(uint256[] memory data) internal pure returns (uint256 ans, uint256 mean) {
mean = avg(data);
uint256 sum = 0;
for (uint256 i = 0; i < data.length; i++) {
uint256 diff = data[i] - mean; // underflow when data[i] < mean
sum += diff * diff;
}
ans = sum / data.length;
}

Impact

This completely breaks the protocol's ability to validate task.

Recommendations

Modify the variance calculation to handle data[i] below mean.

Updates

Lead Judging Commences

inallhonesty Lead Judge 8 months ago
Submission Judgement Published
Validated
Assigned finding tags:

Underflow in computing variance

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.