PT-2020-16369 · Ethereum · Geth
Holiman
·
Published
2020-11-25
·
Updated
2025-08-08
·
CVE-2020-26241
CVSS v3.1
7.1
High
| Vector | AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L |
Name of the Vulnerable Software and Affected Versions
Geth versions prior to 1.9.17
Description
This is a Consensus vulnerability in Geth that can be used to cause a chain-split where vulnerable nodes reject the canonical chain. Geth's pre-compiled
dataCopy contract did a shallow copy on invocation. An attacker could deploy a contract that writes X to an EVM memory region R, then calls 0x00..04 with R as an argument, then 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.Recommendations
Upgrade to version 1.9.17 or higher to resolve the issue. As a temporary workaround, consider restricting the use of the
dataCopy contract until a patch is applied. Avoid using the RETURNDATACOPY opcode in conjunction with the dataCopy contract to minimize the risk of exploitation.Fix
Found an issue in the description? Have something to add? Feel free to write us 👾
Weakness Enumeration
Related Identifiers
Affected Products
Geth