Skip to content
OpenAdvisories
Medium · 5.3 CVE-2026-8463 EUVD-2026-29956GHSA-3p6c-7qjr-35x9

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

Published May 13, 2026 · Updated May 13, 2026 · Assigned by CPANSec

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.

Affected products

VendorProductAffectedFixed
LEONT Crypt::Argon2 0.017 – < 0.031 0.031

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 libcrypt-argon2-perl 0.031-1 —
Debian 13 libcrypt-argon2-perl No fix yet —
Debian 12 libcrypt-argon2-perl No fix yet —
ReleasePackageFixed inAdvisory
Ubuntu 26.10 libcrypt-argon2-perl No fix yet —
Ubuntu 26.04 LTS libcrypt-argon2-perl No fix yet —
Ubuntu 25.10 libcrypt-argon2-perl No fix yet —
Ubuntu 24.04 LTS libcrypt-argon2-perl No fix yet —
ReleasePackageFixed inAdvisory
Alpine v3.24 perl-crypt-argon2 0.031-r0 —

References