CVE-2026-8463Crypt::Argon2 Perl模块在0.017至0.031之前的版本中存在堆越界读取漏洞。当`argon2_verify`函数处理空字符串输入时,因未检查长度导致整数下溢,进而扫描相邻堆内存。攻击者可诱导应用验证空哈希,导致进程崩溃或泄露内存信息,对系统可用性造成影响。
该漏洞的核心在于Crypt::Argon2 Perl库中`argon2_verify`函数的实现缺陷。在自动检测模式下,函数试图通过调用`memchr`在编码字符串中查找'$'分隔符。代码直接使用`encoded_len - 1`作为`memchr`的扫描长度参数,却未预先验证`encoded_len`是否大于0。当输入为空字符串时,`encoded_len`为0,无符号整数减法导致下溢,产生`SIZE_MAX`。这使得`memchr`从堆内存起始位置向后扫描极大范围,从而读取越界的堆内存。虽然这主要导致拒绝服务(DoS),但也可能泄露堆内存布局的细微线索。若攻击者能控制应用传入空哈希(例如利用数据库中的空字段或占位符),即可稳定触发此漏洞,造成服务中断。