The argon2i_32 implementation does not check the nb_blocks size. If the caller does not provide a sufficiently large buffer based on the API contract, then argon2i_32 will write past the end of the buffer and possibly corrupt the heap.
Fixed in 4.0.2.8, which now verifies that nb_blocks is large enough. See 90ff5b1.
Provide a correctly sized nb_blocks buffer.
pymonocypher thanks Haris (hextheshadow) for the vulnerability report, details, and recommended fix.
{
"cwe_ids": [
"CWE-122",
"CWE-1284",
"CWE-787"
],
"github_reviewed": true,
"github_reviewed_at": "2026-07-09T13:42:46Z",
"nvd_published_at": null,
"severity": "MODERATE"
}