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"
}{
"extracted_events": [
{
"cpe": "cpe:2.3:a:openzeppelin:contracts:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "4.5.0"
},
{
"fixed": "4.9.6"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:openzeppelin:contracts_upgradeable:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "4.5.0"
},
{
"last_affected": "4.9.6"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:openzeppelin:contracts:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "5.0.0"
},
{
"fixed": "5.0.2"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:openzeppelin:contracts_upgradeable:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "5.0.0"
},
{
"fixed": "5.0.2"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "92224533b1263772b0774eec3134e132a3d7b2a6"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "a6286d0fded8771b3a645e5813e51993c490399c"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
{
"extracted_events": [
{
"cpe": "cpe:2.3:a:openzeppelin:contracts_upgradeable:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "4.5.0"
},
{
"last_affected": "4.9.6"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:openzeppelin:contracts_upgradeable:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "5.0.0"
},
{
"fixed": "5.0.2"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "2d081f24cac1a867f6f73d512f2022e1fa987854"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "723f8cab09cdae1aca9ec9cc1cfa040c2d4b06c1"
}
],
"source": "REFERENCES_COMMIT"
}
]
}