Openzeppelin Contracts
Approved changes feed: RSS · Atom
cpe:2.3:a:openzeppelin:openzeppelin-contracts:*:*:*:*:*:*:*:*
part: a version: * update: *
| Vendor | Openzeppelin (e0e03368-afa5-5522-8058-af42a8cb296b) |
|---|---|
| Product | Openzeppelin Contracts (6930af17-4fed-5a11-8e0f-837d12338930) |
| Edition | * |
| Language | * |
| Software edition | * |
| Target software | * |
| Target hardware | * |
| Other | * |
| Notes | Imported from gcve-enriched-dumps CVE data |
PURL mappings
| PURL | Source | Last updated |
|---|---|---|
| No PURL mappings for this CPE yet. | ||
Vulnerability references
| Identifier | cpeApplicability | Submitted | db.gcve.eu details | Rationale |
|---|---|---|---|---|
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 |
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 |
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 |
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.