Openzeppelin Contracts-Upgradeable vulnerabilities
18 known vulnerabilities affecting openzeppelin/contracts-upgradeable.
Total CVEs
18
CISA KEV
0
Public exploits
0
Exploited in wild
0
Severity breakdown
CRITICAL2HIGH5MEDIUM11
Vulnerabilities
Page 1 of 1
CVE-2025-54070MEDIUM≥ 5.2.0, < 5.4.02025-07-17
CVE-2025-54070 [MEDIUM] CWE-125 OpenZeppelin Contracts Bytes's lastIndexOf function with position argument performs out-of-bound memory access on empty buffers
OpenZeppelin Contracts Bytes's lastIndexOf function with position argument performs out-of-bound memory access on empty buffers
### Impact
The `lastIndexOf(bytes,byte,uint256)` function of the `Bytes.sol` library may access uninitialized memory when the following two conditions hold: 1) the provided buffer length is empty (i.e. `buffer.
ghsaosv
CVE-2024-27094MEDIUM≥ 5.0.0-rc.0, < 5.0.2≥ 4.5.0, < 4.9.62024-02-29
CVE-2024-27094 [MEDIUM] CWE-125 OpenZeppelin Contracts base64 encoding may read from potentially dirty memory
OpenZeppelin Contracts base64 encoding may read from potentially dirty memory
### Impact
The `Base64.encode` function encodes a `bytes` input by iterating over it in chunks of 3 bytes. When this input is not a multiple of 3, the last iteration may read parts of the memory that are beyond the input buffer.
Although the `encode` function pads the output for these cases, up to 4 bits of
ghsaosv
CVE-2023-49798MEDIUM≥ 4.9.4, < 4.9.52023-12-12
CVE-2023-49798 [MEDIUM] CWE-670 OpenZeppelin Contracts and Contracts Upgradeable duplicated execution of subcalls in v4.9.4
OpenZeppelin Contracts and Contracts Upgradeable duplicated execution of subcalls in v4.9.4
### Context
Merge conflict resolution issue when porting the v5.0.1 `Multicall` update to the v4.9 branch caused a duplicated line.
### Impact
Versions using `Multicall` from `@openzeppelin/[email protected]` and `@openzeppelin/[email protected]` will execute each subcall t
ghsaosv
CVE-2023-40014MEDIUM≥ 4.0.0, < 4.9.32023-08-11
CVE-2023-40014 [MEDIUM] CWE-116 OpenZeppelin Contracts vulnerable to Improper Escaping of Output
OpenZeppelin Contracts vulnerable to Improper Escaping of Output
### Impact
OpenZeppelin Contracts is a library for secure smart contract development. Starting in version 4.0.0 and prior to version 4.9.3, contracts using `ERC2771Context` along with a custom trusted forwarder may see `_msgSender` return `address(0)` in calls that originate from the forwarder with calldata shorter than 20 bytes. This
ghsaosv
CVE-2023-34459MEDIUM≥ 4.7.0, < 4.9.22023-06-19
CVE-2023-34459 [MEDIUM] CWE-354 OpenZeppelin Contracts using MerkleProof multiproofs may allow proving arbitrary leaves for specific trees
OpenZeppelin Contracts using MerkleProof multiproofs may allow proving arbitrary leaves for specific trees
### Impact
When the `verifyMultiProof`, `verifyMultiProofCalldata`, `processMultiProof`, or `processMultiProofCalldata` functions are in use, it is possible to construct merkle trees that allow forging a valid multiproof for an arbitrary set of leaves.
ghsaosv
CVE-2023-34234MEDIUM≥ 4.3.0, < 4.9.12023-06-08
CVE-2023-34234 [MEDIUM] CWE-862 OpenZeppelin Contracts's governor proposal creation may be blocked by frontrunning
OpenZeppelin Contracts's governor proposal creation may be blocked by frontrunning
### Impact
By frontrunning the creation of a proposal, an attacker can become the proposer and gain the ability to cancel it. The attacker can do this repeatedly to try to prevent a proposal from being proposed at all.
This impacts the `Governor` contract in v4.9.0 only, and the `GovernorCompatibil
ghsaosv
CVE-2023-30542HIGH≥ 4.3.0, < 4.8.32023-04-20
CVE-2023-30542 [HIGH] CWE-20 GovernorCompatibilityBravo may trim proposal calldata
GovernorCompatibilityBravo may trim proposal calldata
### Impact
The proposal creation entrypoint (`propose`) in `GovernorCompatibilityBravo` allows the creation of proposals with a `signatures` array shorter than the `calldatas` array. This causes the additional elements of the latter to be ignored, and if the proposal succeeds the corresponding actions would eventually execute without any calldata. The `Propos
ghsaosv
CVE-2023-30541MEDIUM≥ 3.2.0, < 4.8.32023-04-17
CVE-2023-30541 [MEDIUM] CWE-436 OpenZeppelin Contracts TransparentUpgradeableProxy clashing selector calls may not be delegated
OpenZeppelin Contracts TransparentUpgradeableProxy clashing selector calls may not be delegated
### Impact
A function in the implementation contract may be inaccessible if its selector clashes with one of the proxy's own selectors. Specifically, if the clashing function has a different signature with incompatible ABI encoding, the proxy could revert while attempting t
ghsaosv
CVE-2023-26488MEDIUM≥ 4.8.0, < 4.8.22023-03-03
CVE-2023-26488 [MEDIUM] CWE-682 OpenZeppelin Contracts contains Incorrect Calculation
OpenZeppelin Contracts contains Incorrect Calculation
### Impact
The ERC721Consecutive contract designed for minting NFTs in batches does not update balances when a batch has size 1 and consists of a single token. Subsequent transfers from the receiver of that token may overflow the balance as reported by `balanceOf`.
The issue exclusively presents with batches of size 1.
### Patches
The issue has been pat
ghsaosv
CVE-2022-35961HIGH≥ 4.1.0, < 4.7.32022-08-18
CVE-2022-35961 [HIGH] CWE-354 OpenZeppelin Contracts vulnerable to ECDSA signature malleability
OpenZeppelin Contracts vulnerable to ECDSA signature malleability
### Impact
The functions `ECDSA.recover` and `ECDSA.tryRecover` are vulnerable to a kind of signature malleability due to accepting EIP-2098 compact signatures in addition to the traditional 65 byte signature format. This is only an issue for the functions that take a single `bytes` argument, and not the functions that take `r, v, s`
ghsaosv
CVE-2022-31198HIGH≥ 4.3.0, < 4.7.22022-08-18
CVE-2022-31198 [HIGH] CWE-682 OpenZeppelin Contracts's GovernorVotesQuorumFraction updates to quorum may affect past defeated proposals
OpenZeppelin Contracts's GovernorVotesQuorumFraction updates to quorum may affect past defeated proposals
### Impact
This issue concerns instances of Governor that use the module `GovernorVotesQuorumFraction`, a mechanism that determines quorum requirements as a percentage of the voting token's total supply. In affected instances, when a proposal is passed to
ghsaosv
CVE-2022-35916MEDIUM≥ 4.6.0, < 4.7.22022-08-14
CVE-2022-35916 [MEDIUM] CWE-669 OpenZeppelin Contracts's Cross chain utilities for Arbitrum L2 see EOA calls as cross chain calls
OpenZeppelin Contracts's Cross chain utilities for Arbitrum L2 see EOA calls as cross chain calls
### Impact
Contracts using the cross chain utilies for Arbitrum L2, `CrossChainEnabledArbitrumL2` or `LibArbitrumL2`, will classify direct interactions of externally owned accounts (EOAs) as cross chain calls, even though they are not started on L1. This is assessed as
ghsaosv
CVE-2022-35915MEDIUM≥ 3.2.0, < 4.7.22022-08-14
CVE-2022-35915 [MEDIUM] CWE-400 OpenZeppelin Contracts ERC165Checker unbounded gas consumption
OpenZeppelin Contracts ERC165Checker unbounded gas consumption
### Impact
The target contract of an EIP-165 `supportsInterface` query can cause unbounded gas consumption by returning a lot of data, while it is generally assumed that this operation has a bounded cost.
### Patches
The issue has been fixed in v4.7.2.
### References
https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3587
##
ghsaosv
CVE-2022-31172HIGH≥ 4.1.0, < 4.7.12022-07-21
CVE-2022-31172 [HIGH] CWE-20 OpenZeppelin Contracts's SignatureChecker may revert on invalid EIP-1271 signers
OpenZeppelin Contracts's SignatureChecker may revert on invalid EIP-1271 signers
### Impact
`SignatureChecker.isValidSignatureNow` is not expected to 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-1271 as expected.
The contracts that may be affected are those that use `Signature
ghsaosv
CVE-2022-31170HIGH≥ 4.0.0, < 4.7.12022-07-21
CVE-2022-31170 [HIGH] CWE-20 OpenZeppelin Contracts's ERC165Checker may revert instead of returning false
OpenZeppelin Contracts's ERC165Checker may revert instead of returning false
### Impact
`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
ghsaosv
CVE-2022-39384MEDIUM≥ 3.2.0, < 4.4.12021-12-14
CVE-2022-39384 [MEDIUM] CWE-665 OpenZeppelin Contracts initializer reentrancy may lead to double initialization
OpenZeppelin Contracts initializer reentrancy may lead to double initialization
### Impact
Initializer functions that are invoked separate from contract creation (the most prominent example being minimal proxies) may be reentered if they make an untrusted non-view external call.
Once an initializer has finished running it can never be re-executed. However, an exception put in place
ghsaosv
CVE-2021-41264CRITICAL≥ 4.1.0, < 4.3.22021-09-15
CVE-2021-41264 [CRITICAL] CWE-665 UUPSUpgradeable vulnerability in @openzeppelin/contracts
UUPSUpgradeable vulnerability in @openzeppelin/contracts
### Impact
Upgradeable contracts using `UUPSUpgradeable` may be vulnerable to an attack affecting uninitialized implementation contracts. We will update this advisory with more information soon.
### Patches
A fix is included in version 4.3.2 of `@openzeppelin/contracts` and `@openzeppelin/contracts-upgradeable`.
### Workarounds
Initialize imple
ghsaosv
CVE-2021-39168CRITICAL≥ 4.0.0, < 4.3.1≥ 3.3.0, < 3.4.22021-08-30
CVE-2021-39168 [CRITICAL] CWE-269 TimelockController vulnerability in OpenZeppelin Contracts
TimelockController vulnerability in OpenZeppelin Contracts
### Impact
A vulnerability in `TimelockController` allowed an actor with the executor role to take immediate control of the timelock, by resetting the delay to 0 and escalating privileges, thus gaining unrestricted access to assets held in the contract. Instances with the executor role set to "open" allow anyone to use the executor role, thus l
ghsaosv