8.7
CWE
325
Advisory Published
Updated

CVE-2025-30147: ALTBN128_ADD, ALTBN128_MUL, ALTBN128_PAIRING precompile functions do not check if points are on curve

First published: Wed May 07 2025(Updated: )

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.

Credit: security-advisories@github.com

Affected SoftwareAffected VersionHow to fix
Hyperledger Besu>=24.7.1<25.2.2
Hyperledger Besu>=0.9.0<1.2.1

Never miss a vulnerability like this again

Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.

Frequently Asked Questions

  • What is the severity of CVE-2025-30147?

    CVE-2025-30147 is classified as a high-severity vulnerability due to its potential impact on the consensus mechanism of Hyperledger Besu.

  • How do I fix CVE-2025-30147?

    To fix CVE-2025-30147, upgrade Hyperledger Besu to version 25.2.3 or later to avoid the vulnerable code present in versions 24.7.1 through 25.2.2.

  • What systems are affected by CVE-2025-30147?

    CVE-2025-30147 affects Hyperledger Besu versions 24.7.1 to 25.2.2 and besu-native versions 0.9.0 to 1.2.1.

  • What is the nature of the vulnerability described in CVE-2025-30147?

    CVE-2025-30147 involves a potential consensus bug affecting the precompiles within Hyperledger Besu's native libraries.

  • Are there any workarounds for CVE-2025-30147?

    Currently, the best approach is to upgrade to a patched version of Hyperledger Besu, as there are no known effective workarounds for CVE-2025-30147.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2025 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203