Approved changes feed: RSS · Atom

cpe:2.3:a:openzeppelin:openzeppelin-contracts:*:*:*:*:*:*:*:*

part: a version: * update: *

VendorOpenzeppelin (e0e03368-afa5-5522-8058-af42a8cb296b)
ProductOpenzeppelin Contracts (6930af17-4fed-5a11-8e0f-837d12338930)
Edition*
Language*
Software edition*
Target software*
Target hardware*
Other*
NotesImported from gcve-enriched-dumps CVE data

PURL mappings

PURLSourceLast updated
No PURL mappings for this CPE yet.

Vulnerability references

IdentifiercpeApplicabilitySubmitteddb.gcve.eu detailsRationale
CVE:CVE-2025-54070 vulnerable 2026-06-08 07:33:11.103369 OpenZeppelin Contracts's Bytes's lastIndexOf function with position argument performs out-of-bound memory access on empty buffers
OpenZeppelin Contracts is a library for secure smart contract development. Starting in version 5.2.0 and prior to version 5.4.0, 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.length == 0`) and position is not `2**256 - 1` (i.e. `pos != type(uint256).max`). The `pos` argument could be used to access arbitrary data outside of the buffer bounds. This could lead to the operation running out of gas, or returning an invalid index (outside of the empty buffer). Processing this invalid result for accessing the `buffer` would cause a revert under normal conditions. When triggered, the function reads memory at offset `buffer + 0x20 + pos`. If memory at that location (outside the `buffer`) matches the search pattern, the function would return an out of bound index instead of the expected `type(uint256).max`. This creates unexpected behavior where callers receive a valid-looking index pointing outside buffer bounds. Subsequent memory accesses that don't check bounds and use the returned index must carefully review the potential impact depending on their setup. Code relying on this function returning `type(uint256).max` for empty buffers or using the returned index without bounds checking could exhibit undefined behavior. Users should upgrade to version 5.4.0 to receive a patch.
Published: 2025-07-17T18:25:02.492Z
Updated: 2025-07-17T20:28:13.310Z
Reference links
Imported from gcve-enriched-dumps CVE data
CVE:CVE-2024-27094 vulnerable 2026-06-08 06:31:27.542904 OpenZeppelin Contracts base64 encoding may read from potentially dirty memory
MEDIUM (6.5)
OpenZeppelin Contracts is a library for secure smart contract development. 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. The vulnerability is fixed in 5.0.2 and 4.9.6.
Published: 2024-02-29T18:18:24.721Z
Updated: 2024-08-02T19:35:12.184Z
Reference links
Imported from gcve-enriched-dumps CVE data
CVE:CVE-2023-49798 vulnerable 2026-06-08 06:16:10.501439 Duplicated execution of subcalls in OpenZeppelin Contracts
MEDIUM (5.9)
OpenZeppelin Contracts is a library for smart contract development. A merge issue when porting the 5.0.1 patch to the 4.9 branch caused a line duplication. In the version of `Multicall.sol` released in `@openzeppelin/contracts@4.9.4` and `@openzeppelin/contracts-upgradeable@4.9.4`, all subcalls are executed twice. Concretely, this exposes a user to unintentionally duplicate operations like asset transfers. The duplicated delegatecall was removed in version 4.9.5. The 4.9.4 version is marked as deprecated. Users are advised to upgrade. There are no known workarounds for this issue.
Published: 2023-12-08T23:35:24.467Z
Updated: 2024-08-02T22:01:26.056Z
Reference links
Imported from gcve-enriched-dumps CVE data
CVE:CVE-2023-40014 vulnerable 2026-06-08 06:09:41.026113 OpenZeppelin Contracts's ERC2771Context with custom forwarder may lead to zero-valued _msgSender
MEDIUM (5.3)
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 combination of circumstances does not appear to be common, in particular it is not the case for `MinimalForwarder` from OpenZeppelin Contracts, or any deployed forwarder the team is aware of, given that the signer address is appended to all calls that originate from these forwarders. The problem has been patched in v4.9.3.
Published: 2023-08-10T19:52:55.699Z
Updated: 2024-10-03T14:58:56.494Z
Reference links
Imported from gcve-enriched-dumps CVE data
CVE:CVE-2023-34459 vulnerable 2026-06-08 06:06:25.638961 OpenZeppelin Contracts's MerkleProof multiproofs may allow proving arbitrary leaves for specific trees
MEDIUM (5.3)
OpenZeppelin Contracts is a library for smart contract development. Starting in version 4.7.0 and prior to version 4.9.2, when the `verifyMultiProof`, `verifyMultiProofCalldata`, `procesprocessMultiProof`, or `processMultiProofCalldat` functions are in use, it is possible to construct merkle trees that allow forging a valid multiproof for an arbitrary set of leaves. A contract may be vulnerable if it uses multiproofs for verification and the merkle tree that is processed includes a node with value 0 at depth 1 (just under the root). This could happen inadvertedly for balanced trees with 3 leaves or less, if the leaves are not hashed. This could happen deliberately if a malicious tree builder includes such a node in the tree. A contract is not vulnerable if it uses single-leaf proving (`verify`, `verifyCalldata`, `processProof`, or `processProofCalldata`), or if it uses multiproofs with a known tree that has hashed leaves. Standard merkle trees produced or validated with the @openzeppelin/merkle-tree library are safe. The problem has been patched in version 4.9.2. Some workarounds are available. For those using multiproofs: When constructing merkle trees hash the leaves and do not insert empty nodes in your trees. Using the @openzeppelin/merkle-tree package eliminates this issue. Do not accept user-provided merkle roots without reconstructing at least the first level of the tree. Verify the merkle tree structure by reconstructing it from the leaves.
Published: 2023-06-16T22:13:18.181Z
Updated: 2024-12-16T18:35:27.231Z
Reference links
Imported from gcve-enriched-dumps CVE data
CVE:CVE-2023-34234 vulnerable 2026-06-08 06:06:24.912292 db.gcve.eu details were skipped to keep the page responsive. Imported from gcve-enriched-dumps CVE data
CVE:CVE-2023-30542 vulnerable 2026-06-08 06:04:39.756428 db.gcve.eu details were skipped to keep the page responsive. Imported from gcve-enriched-dumps CVE data
CVE:CVE-2023-30541 vulnerable 2026-06-08 06:04:39.753920 db.gcve.eu details were skipped to keep the page responsive. Imported from gcve-enriched-dumps CVE data
CVE:CVE-2023-26488 vulnerable 2026-06-08 05:57:39.799308 db.gcve.eu details were skipped to keep the page responsive. Imported from gcve-enriched-dumps CVE data
CVE:CVE-2022-39384 vulnerable 2026-06-08 05:47:18.706622 db.gcve.eu details were skipped to keep the page responsive. Imported from gcve-enriched-dumps CVE data
CVE:CVE-2022-35961 vulnerable 2026-06-08 05:46:06.062272 db.gcve.eu details were skipped to keep the page responsive. Imported from gcve-enriched-dumps CVE data
CVE:CVE-2022-35916 vulnerable 2026-06-08 05:46:05.961732 db.gcve.eu details were skipped to keep the page responsive. Imported from gcve-enriched-dumps CVE data
CVE:CVE-2022-35915 vulnerable 2026-06-08 05:46:05.958040 db.gcve.eu details were skipped to keep the page responsive. Imported from gcve-enriched-dumps CVE data
CVE:CVE-2022-31198 vulnerable 2026-06-08 05:43:40.370858 db.gcve.eu details were skipped to keep the page responsive. Imported from gcve-enriched-dumps CVE data
CVE:CVE-2022-31172 vulnerable 2026-06-08 05:43:40.326029 db.gcve.eu details were skipped to keep the page responsive. Imported from gcve-enriched-dumps CVE data
CVE:CVE-2022-31170 vulnerable 2026-06-08 05:43:40.324567 db.gcve.eu details were skipped to keep the page responsive. Imported from gcve-enriched-dumps CVE data
CVE:CVE-2021-41264 vulnerable 2026-06-08 05:35:20.065485 db.gcve.eu details were skipped to keep the page responsive. Imported from gcve-enriched-dumps CVE data
CVE:CVE-2021-39167 vulnerable 2026-06-08 05:33:49.080638 db.gcve.eu details were skipped to keep the page responsive. Imported from gcve-enriched-dumps CVE data

Contribute

You can submit an edit proposal for this CPE entry or suggest a related product/vendor addition using the action button above.