GitHub Advisoryadvisory · Go

GHSA-69v6-xc2j-r2jf Shallow copy bug in geth

MEDIUM Published 2021-06-29 Modified 2025-01-30 Official page ↗
Aliases
CVE-2020-26241
Ecosystem
Go
Packages
github.com/ethereum/go-ethereum
Severity
Moderate
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
Weaknesses
CWE-682
Reviewed
2021-05-21

Affected packages

• Go github.com/ethereum/go-ethereum: >= 1.9.7, < 1.9.17 → fixed in 1.9.17

Description

Impact This is a Consensus vulnerability, which can be used to cause a chain-split where vulnerable nodes reject the canonical chain. Geth’s pre-compiled `dataCopy` (at `0x00...04`) contract did a shallow copy on invocation. An attacker could deploy a contract that • writes `X` to an EVM memory region `R`, • calls `0x00..04` with `R` as an argument, • overwrites `R` to `Y`, • and finally invokes the `RETURNDATACOPY` opcode. When this contract is invoked, a consensus-compliant node would push `X` on the EVM stack, whereas Geth would push `Y`. Patches No standalone patches have been made. Workarounds Upgrade to `1.9.17` or higher. References https://blog.ethereum.org/2020/11/12/geth_security_release/ For more information If you have any questions or comments about this advisory: • Open an issue in go-ethereum • Email us at [email protected]

Related

Alias · CVE (1)

  • CVE-2020-26241 Go Ethereum, or "Geth", is the official Golang implementation of the Ethereum protocol. vulnerability

Weakness · CWE (1)

  • CWE-682 Incorrect Calculation weakness

References