Incorrect Calculation Affecting ethereum/go-ethereum package, versions [,1.9.17)


Severity

Recommended
0.0
high
0
10

CVSS assessment by Snyk's Security Team. Learn more

Threat Intelligence

EPSS
1.23% (68th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-UNMANAGED-ETHEREUMGOETHEREUM-2364932
  • published26 Jan 2022
  • disclosed25 Nov 2020
  • creditUnknown

Introduced: 25 Nov 2020

CVE-2020-26241  (opens in a new tab)
CWE-682  (opens in a new tab)

How to fix?

Upgrade ethereum/go-ethereum to version 1.9.17 or higher.

Overview

Affected versions of this package are vulnerable to Incorrect Calculation. Go Ethereum, or "Geth", is the official Golang implementation of the Ethereum protocol. This is a Consensus vulnerability in Geth before version 1.9.17 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, 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. This is fixed in version 1.9.17.

CVSS Base Scores

version 3.1