7.5
CWE
252 20
Advisory Published
Updated

CVE-2022-31170: Input Validation

First published: Fri Jul 22 2022(Updated: )

OpenZeppelin Contracts is a library for smart contract development. Versions 4.0.0 until 4.7.1 are vulnerable to ERC165Checker reverting instead of returning `false`. `ERC165Checker.supportsInterface` is designed to always successfully return a boolean, and under no circumstance revert. However, an incorrect assumption about Solidity 0.8's `abi.decode` allows some cases to revert, given a target contract that doesn't implement EIP-165 as expected, specifically if it returns a value other than 0 or 1. The contracts that may be affected are those that use `ERC165Checker` to check for support for an interface and then handle the lack of support in a way other than reverting. The issue was patched in version 4.7.1.

Credit: security-advisories@github.com

Affected SoftwareAffected VersionHow to fix
Openzeppelin Contracts>=4.0.0<4.7.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 vulnerability ID for this issue?

    The vulnerability ID for this issue is CVE-2022-31170.

  • What is the severity level of CVE-2022-31170?

    The severity level of CVE-2022-31170 is high with a CVSS score of 7.5.

  • Which software versions of OpenZeppelin Contracts are affected by CVE-2022-31170?

    Versions 4.0.0 until 4.7.1 of OpenZeppelin Contracts are affected by CVE-2022-31170.

  • What is the impact of CVE-2022-31170?

    CVE-2022-31170 can allow an attacker to cause a denial of service by causing the ERC165Checker to revert instead of returning `false`.

  • Is there a fix or patch available for CVE-2022-31170?

    Yes, a patch has been released by OpenZeppelin. It is recommended to update to a version later than 4.7.1 of OpenZeppelin Contracts.

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.
© 2024 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203