CVE-2026-8503Apache::Session::Generate::SHA256是Perl用于生成SHA256哈希会话ID的模块。在1.3.19版本之前,该模块存在严重的安全设计缺陷。其默认的会话ID生成器使用了内置的rand()函数、纪元时间和进程ID(PID)作为输入源。由于这些来源具有可预测性和低熵值特征,尽管对结果进行了两次哈希处理,生成的会话ID仍然不安全。攻击者可利用此漏洞预测有效的会话ID,从而劫持用户会话并获得系统访问权限。
该漏洞的根本原因在于使用了非密码学安全的随机数生成器。受影响的模块在生成会话ID时,依赖Perl内置的rand()函数,该函数产生的伪随机数序列在已知种子或部分状态的情况下是可以被预测的。此外,生成逻辑中混合了当前时间戳和进程ID。虽然PID在特定时刻是有限的,但结合可预测的rand()值,整体输入空间的熵值非常低。攻击者可以通过收集目标服务器的时间信息、PID范围以及rand()的输出特性,在本地复现会话ID的生成过程。一旦计算出有效的会话ID,攻击者即可绕过身份验证,接管用户账户,导致数据泄露或完整性破坏。尽管1.3.19版本引入了Crypt::URandom,但在其调用失败时仍存在不安全的回退风险。