Conversation
Co-authored-by: HeshamASH <69015641+HeshamASH@users.noreply.github.com>
|
π Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a π emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
Review Summary by QodoFix critical state root divergence via OnStateHook side-effect leakage
WalkthroughsDescriptionβ’ Identifies critical state root divergence vulnerability in block execution β’ OnStateHook emits state changes before validation completes, causing consensus fork β’ Adds PoC test demonstrating pre-execution state leakage via beneficiary validation β’ Includes comprehensive vulnerability report with CVSS 10.0 severity assessment Diagramflowchart LR
A["Block Validation Start"] --> B["apply_blockhashes_contract_call"]
B --> C["OnStateHook emits state"]
C --> D["Beneficiary validation"]
D -->|Fails| E["Block aborted"]
E --> F["State already leaked to consensus"]
F --> G["Permanent state root divergence"]
File Changes1. crates/evm/src/executor.rs
|
Code Review by Qodo
1.
|
Add Report.md and .jules/sentinel.md detailing the findings on: 1. `mintCall` authorization check and Delegatecall validation in `NativeCoinAuthority`. 2. `CallFrom` allowlist enforcement and safe `DelegateCall` handling due to `target_address` subcall registry lookup. 3. Explicit bypass paths in `apply_pre_execution_changes` during block assembly when `retrieve_reward_beneficiary` errors out or returns `Address::ZERO`. Co-authored-by: HeshamASH <69015641+HeshamASH@users.noreply.github.com>
Found a critical vulnerability where
ArcBlockExecutorleaks state mutations to the consensus engine viaOnStateHookbefore the block has fully completed validation. If an invalid block is dropped, the node still incorporates these leaked state changes into its global trie tracker, causing a permanent state root divergence between nodes that evaluate the block and nodes that do not. Included a PoC test inexecutor.rsto demonstrate the vulnerability along with a comprehensiveReport.mdand a.jules/sentinel.mdjournal entry.PR created automatically by Jules for task 12534065350538320716 started by @HeshamASH