CVE-2026-6659Crypt::PasswdMD5 是一个用于生成 MD5 密码哈希的 Perl 模块。在 1.42 及更早版本中,该模块在生成密码盐值时使用了 Perl 内置的 `rand` 函数。由于该函数生成的随机数具有可预测性,并不具备密码学安全性,攻击者可以利用该缺陷预测盐值,从而显著降低破解密码哈希的难度,导致系统面临更高的安全风险。
该漏洞的根源在于 Crypt::PasswdMD5 模块在实现 MD5 哈希加盐机制时,错误地依赖于 Perl 解释器内置的 `rand` 函数来生成盐值字符。Perl 的 `rand` 函数并非为密码学安全设计,其底层算法通常属于伪随机数生成器,输出序列具有统计上的可预测性。特别是在进程启动初期,如果不使用高熵源进行显式播种,`rand` 的输出往往与系统时间紧密相关。攻击者可以通过分析密码哈希的生成时间或利用已知明文攻击,缩小盐值的搜索空间。一旦盐值被还原或预测,MD5 哈希的抗彩虹表能力将完全失效。攻击者能够利用这一弱点,针对泄露的哈希数据库进行高效的离线暴力破解,从而获取用户凭证,进而可能导致系统被非法入侵。