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.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-125"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/27xxx/CVE-2024-27094.json"
}{
"cpe": [
"cpe:2.3:a:openzeppelin:contracts:*:*:*:*:*:node.js:*:*",
"cpe:2.3:a:openzeppelin:contracts_upgradeable:*:*:*:*:*:node.js:*:*"
],
"extracted_events": [
{
"introduced": "4.5.0"
},
{
"fixed": "4.9.6"
},
{
"last_affected": "4.9.6"
},
{
"introduced": "5.0.0"
},
{
"fixed": "5.0.2"
}
],
"source": [
"CPE_RANGE",
"REFERENCES"
]
}
{
"cpe": "cpe:2.3:a:openzeppelin:contracts_upgradeable:*:*:*:*:*:node.js:*:*",
"extracted_events": [
{
"introduced": "4.5.0"
},
{
"last_affected": "4.9.6"
},
{
"introduced": "5.0.0"
},
{
"fixed": "5.0.2"
}
],
"source": [
"CPE_RANGE",
"REFERENCES"
]
}