CVE-2026-5085Perl模块Solstice::Session在版本1440及之前存在严重安全漏洞。该模块生成会话ID的机制极不安全,使用了基于纪元时间、随机哈希引用、内置rand()函数和进程ID的MD5摘要。由于纪元时间可被猜测或泄露,哈希引用内容可预测,且rand()函数仅使用16位种子,导致生成的会话ID具有高度可预测性。攻击者利用这一缺陷可以预测有效的会话ID,进而劫持用户会话,在无需认证的情况下获取系统访问权限,造成严重的数据泄露风险。
漏洞根源在于`_generateSessionID`方法依赖弱熵源。Perl内置的`rand()`函数默认使用16位种子,这意味着其状态空间仅有65,536种可能性,极易被暴力破解。加之纪元时间通常在HTTP响应头中可见,进程ID(PID)通常在较小范围内变化。攻击者可以通过捕获HTTP Date头获取时间窗口,结合PID范围,遍历所有可能的rand()种子值,并模拟字符串化哈希引用的生成过程。通过这种方式,攻击者能够快速计算出当前时刻可能生成的所有Session ID列表,并尝试通过修改Cookie或Session参数进行会话劫持。