CVE-2026-42484hashcat v7.1.2版本中的PKZIP哈希解析器存在严重的堆缓冲区溢出漏洞。该漏洞位于hex_to_binary函数中,当处理特制的PKZIP哈希文件时,由于缺乏对输入长度的有效验证,攻击者可控的十六进制数据被解码至固定大小的缓冲区。此问题影响多个哈希模式模块,攻击者无需认证即可通过网络触发该漏洞,导致程序崩溃或潜在的任意代码执行。
该漏洞的根源在于hashcat PKZIP哈希解析模块中的hex_to_binary函数存在内存安全缺陷。具体而言,当处理特定的PKZIP哈希文件时(主要影响模块17200、17210、17220、17225及17230),若data_type_enum变量值小于或等于1,程序会进入特定的解码逻辑。在此逻辑中,系统直接将用户提供的哈希字符串中的十六进制数据转换为二进制流,并写入预先分配的固定大小缓冲区。关键问题在于,代码完全缺失了对输入十六进制字符串长度的边界检查,也未验证解码后的二进制数据大小是否超出目标缓冲区的容量。这种疏忽使得攻击者能够通过构建超长的特制哈希输入,引发基于堆的缓冲区溢出。由于hashcat常用于自动化密码破解场景,攻击者可诱导受害者加载恶意哈希文件,从而覆盖堆内存结构(如函数指针、堆元数据),最终导致应用程序崩溃(DoS)或在特定条件下劫持程序执行流,实现任意代码执行(RCE)。