CVE-2026-8700Crypt::DSA是Perl语言中用于实现DSA数字签名算法的模块。在1.20版本之前,该模块在生成DSA密钥种子时错误地使用了Perl内置的rand函数。由于该函数生成的随机数具有可预测性,并不符合密码学安全标准,导致生成的DSA密钥对容易被攻击者推导。攻击者可利用此漏洞破解私钥,伪造签名,对系统的机密性、完整性和可用性造成威胁。
该漏洞的核心问题在于Crypt::DSA的密钥生成过程中使用了非加密安全的伪随机数生成器(PRNG)。在受影响版本中,`Crypt::DSA::KeyChain`模块调用Perl的`rand()`函数来生成种子参数。Perl的`rand`通常基于线性同余生成器或类似算法,其输出序列是确定性的。如果攻击者能够观察到足够多的输出(例如生成的签名或公钥),就可以通过逆向算法推导出内部状态,进而预测后续的随机数或重建用于生成密钥的种子。这使得攻击者能够计算出私钥,从而冒充合法用户进行签名或解密敏感信息。