CVE-2026-5084WebDyne::Session 2.075及之前版本在生成会话ID时存在严重的安全缺陷。该Perl模块使用基于内置rand()函数的MD5哈希来生成会话ID,而rand()函数仅使用32位种子,主要依赖于进程ID、时间戳和对象地址。由于这些信息熵值较低且具有可预测性,导致生成的会话ID容易被攻击者猜测。成功利用此漏洞的攻击者可以预测有效的会话ID,进而劫持用户会话,获取未授权的系统访问权限,造成数据泄露或篡改。
该漏洞的核心原理在于WebDyne::Session使用了缺乏密码学安全性的随机数生成器。在受影响的版本中,会话ID是通过MD5哈希生成的,其输入源依赖于Perl内置的rand()函数。尽管开发者尝试结合进程ID(PID)、纪元时间(Epoch Time)和对象引用地址来增加随机性,但这种组合方式并不足以抵抗预测攻击。Perl的rand()函数通常由32位值播种,其状态空间非常小(仅约40亿种可能性),且在特定环境下PID范围有限,时间戳也可被精确推断。攻击者可以通过收集少量样本或基于时间戳的暴力破解,快速还原出随机数生成器的种子,从而计算出当前或未来的有效会话ID。一旦拥有有效的会话ID,攻击者即可绕过身份验证,直接以受害者身份登录系统。