Skip to content
OpenAdvisories
Medium · 6.5 CVE-2024-27094 EUVD-2024-0602GHSA-9vx6-7xxf-x967

OpenZeppelin Contracts base64 encoding may read from potentially dirty memory

Published Feb 29, 2024 · Updated Aug 2, 2024 · Assigned by GitHub_M

Description

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.

Affected products

VendorProductAffectedFixed
OpenZeppelin openzeppelin-contracts >= 4.5.0, < 4.9.6, >= 5.0.0-rc.0, < 5.0.2 —

Affected packages

EcosystemPackageAffectedFixedRecord
npm @openzeppelin/contracts >= 4.5.0, < 4.9.6 4.9.6 GHSA-9vx6-7xxf-x967
npm @openzeppelin/contracts >= 5.0.0-rc.0, < 5.0.2 5.0.2 GHSA-9vx6-7xxf-x967
npm @openzeppelin/contracts-upgradeable >= 5.0.0-rc.0, < 5.0.2 5.0.2 GHSA-9vx6-7xxf-x967
npm @openzeppelin/contracts-upgradeable >= 4.5.0, < 4.9.6 4.9.6 GHSA-9vx6-7xxf-x967

References