CVE-2025-30147

Besu Native contains scripts and tooling that is used to build and package the native libraries used by the Ethereum client Hyperledger Besu. Besu 24.7.1 through 25.2.2, corresponding to besu-native versions 0.9.0 through 1.2.1, have a potential consensus bug for the precompiles ALTBN128_ADD (0x06), ALTBN128_MUL (0x07), and ALTBN128_PAIRING (0x08). These precompiles were reimplemented in besu-native using gnark-crypto's bn254 implementation, as the former implementation used a library which was no longer maintained and not sufficiently performant. The new gnark implementation was initially added in version 0.9.0 of besu-native but was not utilized by Besu until version 0.9.2 in Besu 24.7.1. The issue is that there are EC points which may be crafted which are in the correct subgroup but are not on the curve and the besu-native gnark implementation was relying on subgroup checks to perform point-on-curve checks as well. The version of gnark-crypto used at the time did not do this check when performing subgroup checks. The result is that it was possible for Besu to give an incorrect result and fall out of consensus when executing one of these precompiles against a specially crafted input point. Additionally, homogenous Besu-only networks can potentially enshrine invalid state which would be incorrect and difficult to process with patched versions of besu which handle these calls correctly. The underlying defect has been patched in besu-native release 1.3.0. The fixed version of Besu is version 25.3.0. As a workaround for versions of Besu with the problem, the native precompile for altbn128 may be disabled in favor of the pure-java implementation. The pure java implementation is significantly slower, but does not have this consensus issue.
CVSS

No CVSS.

Configurations

No configuration.

History

08 May 2025, 14:39

Type Values Removed Values Added
Summary
  • (es) Besu Native contiene scripts y herramientas que se utilizan para compilar y empaquetar las librerías nativas que utiliza el cliente de Ethereum, Hyperledger Besu. Las versiones de Besu 24.7.1 a 25.2.2, correspondientes a las versiones de besu-native 0.9.0 a 1.2.1, presentan un posible error de consenso en las precompilaciones ALTBN128_ADD (0x06), ALTBN128_MUL (0x07) y ALTBN128_PAIRING (0x08). Estas precompilaciones se reimplementaron en besu-native con la implementación bn254 de gnark-crypto, ya que la implementación anterior utilizaba una librería que ya no recibía mantenimiento y no ofrecía el rendimiento suficiente. La nueva implementación de gnark se añadió inicialmente en la versión 0.9.0 de besu-native, pero Besu no la utilizó hasta la versión 0.9.2 de Besu 24.7.1. El problema radica en que existen puntos EC que podrían estar manipulados y que se encuentran en el subgrupo correcto, pero no en la curva. La implementación de besu-native de gnark dependía de comprobaciones de subgrupos para realizar también comprobaciones de punto en la curva. La versión de gnark-crypto utilizada en ese momento no realizaba esta comprobación al realizar comprobaciones de subgrupos. Como resultado, Besu podía generar un resultado incorrecto y perder el consenso al ejecutar una de estas precompilaciones contra un punto de entrada especialmente manipulado. Además, las redes homogéneas solo de Besu pueden potencialmente incluir un estado no válido, lo cual sería incorrecto y difícil de procesar con versiones parcheadas de besu que gestionan estas llamadas correctamente. El defecto subyacente se ha corregido en la versión 1.3.0 de besu-native. La versión corregida de Besu es la 25.3.0. Como solución temporal para las versiones de Besu con este problema, se puede deshabilitar la precompilación nativa para altbn128 en favor de la implementación puramente Java. La implementación de Java puro es significativamente más lenta, pero no tiene este problema de consenso.

07 May 2025, 19:16

Type Values Removed Values Added
New CVE

Information

Published : 2025-05-07 19:16

Updated : 2025-05-08 14:39


NVD link : CVE-2025-30147

Mitre link : CVE-2025-30147

CVE.ORG link : CVE-2025-30147


JSON object : View

Products Affected

No product.

CWE
CWE-325

Missing Cryptographic Step