Advisory Database
  • Advisories
  • Dependency Scanning
  1. npm
  2. ›
  3. @openzeppelin/contracts-upgradeable
  4. ›
  5. CVE-2022-31170

CVE-2022-31170: Improper Input Validation

July 21, 2022

OpenZeppelin Contracts is a library for smart contract development. Versions 4.0.0 until 4.7.1 is 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 does not 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.

References

  • github.com/OpenZeppelin/openzeppelin-contracts/pull/3552
  • github.com/OpenZeppelin/openzeppelin-contracts/security/advisories/GHSA-qh9x-gcfh-pcrw
  • github.com/advisories/GHSA-qh9x-gcfh-pcrw

Code Behaviors & Features

Detect and mitigate CVE-2022-31170 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →

Affected versions

All versions starting from 4.0.0 before 4.7.1

Fixed versions

  • 4.7.1

Solution

Upgrade to version 4.7.1 or above.

Impact 7.5 HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N

Learn more about CVSS

Weakness

  • CWE-20: Improper Input Validation

Source file

npm/@openzeppelin/contracts-upgradeable/CVE-2022-31170.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Sun, 08 Nov 2026 00:15:48 +0000.