// For flags

CVE-2021-41272

SHL, SHR, and SAR operations trigger native exception at key values in besu

Severity Score

7.5
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

-
*SSVC
Descriptions

Besu is an Ethereum client written in Java. Starting in version 21.10.0, changes in the implementation of the SHL, SHR, and SAR operations resulted in the introduction of a signed type coercion error in values that represent negative values for 32 bit signed integers. Smart contracts that ask for shifts between approximately 2 billion and 4 billion bits (nonsensical but valid values for the operation) will fail to execute and hence fail to validate. In networks where vulnerable versions are mining with other clients or non-vulnerable versions this will result in a fork and the relevant transactions will not be included in the fork. In networks where vulnerable versions are not mining (such as Rinkeby) no fork will result and the validator nodes will stop accepting blocks. In networks where only vulnerable versions are mining the relevant transaction will not be included in any blocks. When the network adds a non-vulnerable version the network will act as in the first case. Besu 21.10.2 contains a patch for this issue. Besu 21.7.4 is not vulnerable and clients can roll back to that version. There is a workaround available: Once a transaction with the relevant shift operations is included in the canonical chain, the only remediation is to make sure all nodes are on non-vulnerable versions.

Besu es un cliente de Ethereum escrito en Java. A partir de la versión 21.10.0, los cambios en la implementación de las operaciones SHL, SHR y SAR resultaron en la introducción de un error de coerción de tipo con signo en valores que representan valores negativos para enteros con signo de 32 bits. Los contratos inteligentes que piden desplazamientos entre aproximadamente 2.000 millones y 4.000 millones de bits (valores sin sentido pero válidos para la operación) fallarán en la ejecución y, por tanto, en la comprobación. En las redes en las que las versiones vulnerables estén minando con otros clientes o versiones no vulnerables será producida una bifurcación y las transacciones correspondientes no serán incluidas en la bifurcación. En redes donde las versiones vulnerables no están minando (como Rinkeby) no será producida ninguna bifurcación y los nodos comprobadores dejarán de aceptar bloques. En las redes en las que sólo minan las versiones vulnerables, la transacción correspondiente no será incluida en ningún bloque. Cuando la red añada una versión no vulnerable la red actuará como en el primer caso. Besu versión 21.10.2 contiene un parche para este problema. Besu versión 21.7.4 no es vulnerable y los clientes pueden volver a esa versión. Se presenta una solución disponible: Una vez que una transacción con las operaciones de cambio pertinentes es incluida en la cadena canónica, la única solución es asegurarse de que todos los nodos están en versiones no vulnerables

*Credits: N/A
CVSS Scores
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High
Attack Vector
Network
Attack Complexity
Low
Authentication
None
Confidentiality
None
Integrity
None
Availability
Partial
* Common Vulnerability Scoring System
SSVC
  • Decision:-
Exploitation
-
Automatable
-
Tech. Impact
-
* Organization's Worst-case Scenario
Timeline
  • 2021-09-15 CVE Reserved
  • 2021-12-13 CVE Published
  • 2024-08-04 CVE Updated
  • 2024-08-28 EPSS Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
  • CWE-681: Incorrect Conversion between Numeric Types
CAPEC
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
Linuxfoundation
Search vendor "Linuxfoundation"
Besu
Search vendor "Linuxfoundation" for product "Besu"
21.10.0
Search vendor "Linuxfoundation" for product "Besu" and version "21.10.0"
-
Affected
Linuxfoundation
Search vendor "Linuxfoundation"
Besu
Search vendor "Linuxfoundation" for product "Besu"
21.10.0
Search vendor "Linuxfoundation" for product "Besu" and version "21.10.0"
rc1
Affected
Linuxfoundation
Search vendor "Linuxfoundation"
Besu
Search vendor "Linuxfoundation" for product "Besu"
21.10.0
Search vendor "Linuxfoundation" for product "Besu" and version "21.10.0"
rc2
Affected
Linuxfoundation
Search vendor "Linuxfoundation"
Besu
Search vendor "Linuxfoundation" for product "Besu"
21.10.0
Search vendor "Linuxfoundation" for product "Besu" and version "21.10.0"
rc3
Affected
Linuxfoundation
Search vendor "Linuxfoundation"
Besu
Search vendor "Linuxfoundation" for product "Besu"
21.10.0
Search vendor "Linuxfoundation" for product "Besu" and version "21.10.0"
rc4
Affected
Linuxfoundation
Search vendor "Linuxfoundation"
Besu
Search vendor "Linuxfoundation" for product "Besu"
21.10.1
Search vendor "Linuxfoundation" for product "Besu" and version "21.10.1"
-
Affected