Home

Description

Crypt::Argon2 versions from 0.017 before 0.031 for Perl perform a heap out-of-bounds read in argon2_verify on empty encoded input. The auto-detect form of argon2_verify passes encoded_len - 1 as the length argument to memchr without checking that encoded_len is non-zero. When the encoded string is empty, the size_t subtraction underflows to SIZE_MAX and memchr scans adjacent heap memory looking for a '$' separator byte. A caller that invokes argon2_verify against a stored hash that may legitimately be empty (for example a placeholder row or a NULL column materialised as an empty string) reads out-of-bounds heap memory, which can crash the process or leak the position of an adjacent '$' byte into subsequent parsing.

PUBLISHED Reserved 2026-05-13 | Published 2026-05-13 | Updated 2026-05-13 | Assigner CPANSec

Problem types

CWE-126 Buffer Over-read

CWE-191 Integer Underflow (Wrap or Wraparound)

Product status

Default status
unaffected

0.017 (custom) before 0.031
affected

Timeline

2026-05-12:Issue reported.
2026-05-13:Crypt-Argon2 0.031 released with fix.

References

www.openwall.com/lists/oss-security/2026/05/13/4

github.com/...92eac03ce63d541e0ead7ea5a89b9b67ce0c0e64.patch patch

metacpan.org/release/LEONT/Crypt-Argon2-0.031/changes release-notes

cve.org (CVE-2026-8463)

nvd.nist.gov (CVE-2026-8463)

Download JSON