Skip to content
QuantumScanPublic scan report

Repository

ethereum/go-ethereum

Scanned on Jul 15, 2026

100

Risk score/ 100

Critical risk

Summary

Análise Heurística (IA indisponível) — 60 ocorrências detectadas: ECDSA, LOW-LEVEL CALL: Return value of .call() not captured — silent failure, ETH lost, EXPLOIT: Re-entrancy risk — external call before state update, no guard, AES-128, Elliptic Curve Cryptography….

Critical

18

High

39

Medium

2

Low

1

Top findings

  • CriticalEXPLOIT: Re-entrancy risk — external call before state update, no guard

    beacon/light/sync/update_sync.go:149

    Verify the contract follows the Checks-Effects-Interactions pattern: (1) CHECK conditions first (require balance > 0), (2) UPDATE state (balance = 0), (3) INTERACT externally (call{value:}). Use OpenZeppelin ReentrancyGuard modifier on all functions making external calls. The nonReentrant modifier should appear on the function.

    Raw evidence
    id := requester.Send(server, ReqCheckpointData(s.checkpointHash))
  • CriticalEXPLOIT: Re-entrancy risk — external call before state update, no guard

    beacon/light/sync/update_sync.go:153

    Verify the contract follows the Checks-Effects-Interactions pattern: (1) CHECK conditions first (require balance > 0), (2) UPDATE state (balance = 0), (3) INTERACT externally (call{value:}). Use OpenZeppelin ReentrancyGuard modifier on all functions making external calls. The nonReentrant modifier should appear on the function.

    Raw evidence
    requester.Send(server, ReqHeader(s.checkpointHash))
  • CriticalEXPLOIT: Re-entrancy risk — external call before state update, no guard

    beacon/light/sync/update_sync.go:158

    Verify the contract follows the Checks-Effects-Interactions pattern: (1) CHECK conditions first (require balance > 0), (2) UPDATE state (balance = 0), (3) INTERACT externally (call{value:}). Use OpenZeppelin ReentrancyGuard modifier on all functions making external calls. The nonReentrant modifier should appear on the function.

    Raw evidence
    requester.Send(server, ReqHeader(s.parentHash))
  • CriticalEXPLOIT: Re-entrancy risk — external call before state update, no guard

    accounts/manager.go:138

    Verify the contract follows the Checks-Effects-Interactions pattern: (1) CHECK conditions first (require balance > 0), (2) UPDATE state (balance = 0), (3) INTERACT externally (call{value:}). Use OpenZeppelin ReentrancyGuard modifier on all functions making external calls. The nonReentrant modifier should appear on the function.

    Raw evidence
    am.feed.Send(event)
  • CriticalEXPLOIT: Re-entrancy risk — external call before state update, no guard

    accounts/keystore/keystore.go:171

    Verify the contract follows the Checks-Effects-Interactions pattern: (1) CHECK conditions first (require balance > 0), (2) UPDATE state (balance = 0), (3) INTERACT externally (call{value:}). Use OpenZeppelin ReentrancyGuard modifier on all functions making external calls. The nonReentrant modifier should appear on the function.

    Raw evidence
    ks.updateFeed.Send(event)

+ 55 more findings in the full report

Scan your own repository

Free. Results in ~90 seconds. CBOM + DORA/NIS2 PDF included.

Start a free scan