Skip to content

[FUZZ] Differential fuzzing failed on push run 30468210569 (main@81a7b9c60b567c3152ca59a2f86aad843bb8f034) #437

Description

@github-actions

Summary

Failing Test

  • EVM (Foundry)
  • Soroban (Proptest)
  • Cross-validation

Test name: testFuzz_... or prop_...

Reproduction

Counterexample

[FAIL. Reason: ...]
  Counterexample: calldata=0x...
  args=[...]
proptest-regressions/fuzz/<test_name>.txt

Reproduce Locally

# Solidity
cd contracts/evm
forge test --match-test <test_name> --fuzz-seed <SEED>

# Rust
cd contracts/soroban/settlement
cargo test fuzz -- <test_name> --nocapture

Failing Payload

0x...

Analysis

Expected Behavior

Actual Behavior

Divergence Type

  • Round-trip mismatch (encode → decode != original)
  • Asymmetric rejection (one side accepts, other rejects)
  • Incorrect error (wrong revert reason)
  • Length mismatch
  • Field corruption
  • Other: ___________

Impact Assessment

Severity

  • Critical — can cause fund loss
  • High — breaks cross-chain settlement
  • Medium — causes rejection of valid messages
  • Low — edge case, unlikely in practice

Affected Message Types

  • FillConfirmed
  • CancelIntent
  • FillInstruction (future)
  • Other: ___________

Exploitability

Root Cause

Location:

  • Solidity: contracts/evm/src/PerihelionEscrow.sol:L???
  • Rust: contracts/soroban/settlement/src/messages.rs:L???

Issue:

Fix

Proposed Solution

Regression Test

  • Add failing case to fixed golden vectors (neg/*.hex)
  • Commit proptest regression file
  • Add explicit unit test covering this case

Checklist

  • Reproduced locally
  • Impact assessed
  • Root cause identified
  • Fix implemented
  • Regression test added
  • Both codecs pass differential fuzz after fix
  • Golden vectors updated if needed

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions