Allora — disclosed vulnerability reports and payouts

Every publicly disclosed and closed bug bounty report we hold for Allora, with our own summary of each finding and a link to the original disclosure.

Reports indexed
41
Total paid
$0
Critical
0
Largest payout
$0

This page collects the 41 closed, publicly disclosed Allora reports indexed on CoinBuggie. Nothing here is active or unpatched — every entry was published by the programme or the researcher after remediation.

The findings concentrate in Logic error, Access control, across Cosmos-SDK. Reading a single protocol end to end is the fastest way to see which assumptions its codebase repeatedly gets wrong, which is usually a better predictor of where the next finding lives than the category alone.

Use the vulnerability class links below to compare these findings against the same bug class in other protocols.

What reviewers look for

  • Logic error findings disclosed against Allora
  • Access control findings disclosed against Allora

Curated highlights

The largest disclosed payouts in this group, with our own summary of each. Every report links back to the original disclosure.

mediumLogic errorCosmos-SDK$0

Allora: The SelectTopNWorkerNonces function lacks a sorting algorithm internally.

Allora's inference-synthesis keeper exposes SelectTopNWorkerNonces, which returns the first N entries of the worker-nonces array rather than the N with the highest block-height nonces because it never sorts its input. The function is invoked from requestTopicWorkers after filtering nonces to the current epoch but before any ordering step, so it can request inferences from stale or offline workers instead of the most recent ones. This degrades the quality and availability of the inferences the chain synthesizes. The project confirmed the bug and fixed it by adding a SortByBlockHeight call inside the function.

AllorasherlockJul 19, 2024Open
highLogic errorCosmos-SDK$0

Allora: `GenerateForecastScores` acidentally updates inferences scores

Allora's rewards module computes worker payouts from recent per-topic, per-block scores. In the GenerateForecastScores path, when a topic's network-losses bundle contains exactly one forecaster for a block, the code writes a zero-valued placeholder into the worker's inference-score slot via InsertWorkerInferenceScore instead of updating the forecast slot. Because GetWorkersRewardFractions derives reward fractions from these stored scores, the wrong insertion corrupts internal accounting and skews payouts up or down. The single-forecaster condition recurs frequently since forecasts are recorded per topic per block across many topics on roughly a five-second block time. The protocol team confirmed the issue and fixed it with a one-line change to InsertWorkerForecastScore in pull request #466.

AllorasherlockJul 19, 2024Open
mediumLogic errorCosmos-SDK$0

Allora: math miscalculation artificially deflates scores

Allora's GetConsensusScore reward-scoring routine computes a reputer's score as the reciprocal of (distance/consensusNorm + tolerance). An asymmetry in the routine deflates scores: in the loop that builds the numerator distance, any consensusLosses entry equal to zero is replaced with epsilon, but the denominator consensusNorm is precomputed from the original vector containing the zero. Because the numerator grows while the denominator does not, the ratio (and therefore the resulting reciprocal score) is pushed lower than the intended math. The impact is a rare but real under-crediting of affected reputers' reward shares whenever a consensusLosses value is exactly zero. The protocol team acknowledged and fixed the issue in PR #507 by counting the epsilon substitution in the denominator as well.

AllorasherlockJul 19, 2024Open
mediumLogic errorCosmos-SDK$0

Allora: Silent Failure in MustNewDecFromString Can Lead to Node Crashes

Allora's node operator software converts string-valued inference responses into decimals via alloraMath.MustNewDecFromString in the AlloraExecutor's ExecuteFunction method. That helper panics on malformed input rather than returning a catchable error, and the surrounding code has no panic recovery, so an attacker supplying non-decimal strings for inferer, forecaster, or attributed values can trigger an unrecovered panic that crashes the node. The result is a denial-of-service against node availability. The protocol acknowledged the finding and the recommended fix replaces the Must* helper with the error-returning variant and propagates the error.

AllorasherlockJul 19, 2024Open
mediumLogic errorCosmos-SDK$0

Allora: Topics wont activate even with a sufficient stake

Allora activates a topic only when its EMA-smoothed stake weight clears the MinTopicWeight parameter at deposit time. Because a fresh stake is blended with the historical EMA value rather than counted at full weight, a single large deposit can leave the topic's EMA value below threshold even when its raw weight exceeds it. The block-end EndBlocker routine only deactivates underweight topics and never activates newly eligible ones, so the topic remains permanently deactivated despite having sufficient staked weight. The finding affects topic activation gating rather than user funds, and was confirmed by the team and fixed in a follow-up pull request.

AllorasherlockJul 19, 2024Open
highLogic errorCosmos-SDK$0

Allora: Missing highestVotingPower Update in argmaxBlockByStake Resulting in Incorrect Block Selection

Allora's argmaxBlockByStake helper selects the block height carrying the most cumulative staked voting power among candidate blocks voted on by reputers. The function's comparison logic updates the stored front-runner block when a higher-power block is found but never updates the highestVotingPower threshold, so every subsequent block with nonzero stake wins the comparison regardless of its actual power. Because the returned block height feeds downstream consensus-facing processing that trusts the reputer-stake aggregation, the flaw yields arbitrary rather than genuinely strongest block selection and can misdirect stake handling and derived decisions. The protocol acknowledged and remediated the defect in PR #141 by updating the threshold and guarding stake lookups.

AllorasherlockJul 19, 2024Open

All reports in this group

Vulnerability classes disclosed here

Related protocol pages