CVE-2024-27094
CVE-2024-27094 · OpenZeppelin Contracts base64 encoding may read from potentially dirty memory
This page contains facts from public vulnerability sources. Check the original advisory before updating.
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.
CVSS 6.5 · Medium · EPSS 0.8% · Fix available
- Published
- Updated
Stack: node
Affected products and versions
openzeppelin-contracts
- Versions
- >= 4.5.0, < 4.9.6: Affected
- >= 5.0.0-rc.0, < 5.0.2: Affected
No fix published
@openzeppelin/contracts npm
- Affected ranges
- SEMVER: ≥ 4.5.0, < 4.9.6
Update to 4.9.6
@openzeppelin/contracts-upgradeable npm
- Affected ranges
- SEMVER: ≥ 5.0.0-rc.0, < 5.0.2
Update to 5.0.2
@openzeppelin/contracts npm
- Affected ranges
- SEMVER: ≥ 5.0.0-rc.0, < 5.0.2
Update to 5.0.2
@openzeppelin/contracts-upgradeable npm
- Affected ranges
- SEMVER: ≥ 4.5.0, < 4.9.6
Update to 4.9.6
Original sources
- https://github.com/OpenZeppelin/openzeppelin-contracts/security/advisories/GHSA-9vx6-7xxf-x967
- https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/commit/2d081f24cac1a867f6f73d512f2022e1fa987854
- https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/commit/723f8cab09cdae1aca9ec9cc1cfa040c2d4b06c1
- https://github.com/OpenZeppelin/openzeppelin-contracts/commit/92224533b1263772b0774eec3134e132a3d7b2a6
- https://github.com/OpenZeppelin/openzeppelin-contracts/commit/a6286d0fded8771b3a645e5813e51993c490399c
- https://nvd.nist.gov/vuln/detail/CVE-2024-27094