{"id":"CVE-2026-8463","state":"PUBLISHED","title":"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","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.\n\nThe 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.\n\nA 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.","publishedAt":"2026-05-13T12:40:35.917Z","updatedAt":"2026-05-13T17:19:27.434Z","severity":{"score":5.3,"label":"Medium","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","source":"CISA-ADP"},"assigner":"CPANSec","products":["LEONT Crypt::Argon2"],"affected":[{"vendor":"LEONT","product":"Crypt::Argon2","packageName":"Crypt-Argon2","defaultStatus":"unaffected","versions":[{"version":"0.017","status":"affected","lessThan":"0.031","versionType":"custom"}],"collectionURL":"https://cpan.org/modules","programFiles":["lib/Crypt/Argon2.xs"],"programRoutines":[{"name":"Crypt::Argon2::argon2_verify"}],"repo":"https://github.com/Leont/crypt-argon2"}],"references":["https://github.com/Leont/crypt-argon2/commit/92eac03ce63d541e0ead7ea5a89b9b67ce0c0e64.patch","https://metacpan.org/release/LEONT/Crypt-Argon2-0.031/changes","http://www.openwall.com/lists/oss-security/2026/05/13/4"],"weaknesses":["CWE-126","CWE-191"],"ingestedAt":"2026-10-29T20:13:26.108Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/8xxx/CVE-2026-8463.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-8463","state":"PUBLISHED","datePublished":"2026-05-13T12:40:35.917Z","dateUpdated":"2026-05-13T17:19:27.434Z","assignerShortName":"CPANSec","assignerOrgId":"9b29abf9-4ab0-4765-b253-1875cd9b441e","dateReserved":"2026-05-13T11:08:17.272Z"},"containers":{"cna":{"title":"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","descriptions":[{"lang":"en","value":"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.\n\nThe 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.\n\nA 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":[{"vendor":"LEONT","product":"Crypt::Argon2","packageName":"Crypt-Argon2","defaultStatus":"unaffected","versions":[{"version":"0.017","status":"affected","lessThan":"0.031","versionType":"custom"}],"collectionURL":"https://cpan.org/modules","programFiles":["lib/Crypt/Argon2.xs"],"programRoutines":[{"name":"Crypt::Argon2::argon2_verify"}],"repo":"https://github.com/Leont/crypt-argon2"}],"references":[{"url":"https://github.com/Leont/crypt-argon2/commit/92eac03ce63d541e0ead7ea5a89b9b67ce0c0e64.patch","tags":["patch"]},{"url":"https://metacpan.org/release/LEONT/Crypt-Argon2-0.031/changes","tags":["release-notes"]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-126","description":"CWE-126 Buffer Over-read","lang":"en","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-191","description":"CWE-191 Integer Underflow (Wrap or Wraparound)","lang":"en","type":"CWE"}]}],"providerMetadata":{"shortName":"CPANSec","orgId":"9b29abf9-4ab0-4765-b253-1875cd9b441e","dateUpdated":"2026-05-13T12:40:35.917Z"},"solutions":[{"lang":"en","value":"Upgrade to Crypt-Argon2 0.031 or later."}],"source":{"discovery":"UNKNOWN"},"timeline":[{"lang":"en","time":"2026-05-12T00:00:00.000Z","value":"Issue reported."},{"lang":"en","time":"2026-05-13T00:00:00.000Z","value":"Crypt-Argon2 0.031 released with fix."}],"x_generator":{"engine":"cpansec-cna-tool 0.1"}},"adp":[{"title":"CVE Program Container","references":[{"url":"http://www.openwall.com/lists/oss-security/2026/05/13/4"}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2026-05-13T16:53:38.661Z"}},{"title":"CISA ADP Vulnrichment","metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":5.3,"attackVector":"NETWORK","baseSeverity":"MEDIUM","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","integrityImpact":"NONE","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"LOW","privilegesRequired":"NONE","confidentialityImpact":"NONE"}},{"other":{"type":"ssvc","content":{"timestamp":"2026-05-13T17:19:23.875232Z","id":"CVE-2026-8463","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-05-13T17:19:27.434Z"}}]}}}