CVE-2021-41272
SHL, SHR, and SAR operations trigger native exception at key values in besu
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
0Exploited in Wild
-Decision
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
CVSS Scores
SSVC
- Decision:-
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
References (3)
URL | Tag | Source |
---|
URL | Date | SRC |
---|
URL | Date | SRC |
---|
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
|