Open sherlock-admin4 opened 1 month ago
1 comment(s) were left on this issue during the judging contest.
0xmystery commented:
Map is non-deterministic
The protocol team fixed this issue in the following PRs/commits: https://github.com/allora-network/allora-chain/pull/408
defsec
High
Non-deterministic Ranges in Inference Synthesis Causing Inconsistent State Across Nodes
Summary
In the
inference_synthesis
package, the inference synthesis process is utilizing non-deterministic ranges. This non-deterministic behavior can lead to inconsistent state across different nodes, particularly for any data saved from the inference synthesis. The inconsistency can cause significant issues in the system's overall functionality and reliability.Vulnerability Detail
In the
inference_synthesis
package, the inference synthesis process is utilizing non-deterministic ranges. This non-deterministic behavior can lead to inconsistent state across different nodes, particularly for any data saved from the inference synthesis. The inconsistency can cause significant issues in the system's overall functionality and reliability.The code section in question involves creating deep copies of various maps and structs within the
SynthPalette
struct. While the cloning function is properly creating deep copies, the inference synthesis process itself is not deterministic, which leads to the described issue.Impact
This issue can cause multiple nodes in a distributed system to have differing states due to the non-deterministic ranges used during inference synthesis. This can result in:
Code Snippet
synth_palette_bootstrap.go#L58-L82
Tool used
Manual Review
Recommendation