CVE-2026-5082Perl模块Amon2::Plugin::Web::CSRFDefender在7.00至7.03版本中存在严重的安全漏洞,导致生成不安全的会话ID。该模块的generate_session_id函数在无法访问/dev/urandom设备时,会降级使用非加密安全的算法。它结合了进程ID(PID)、高精度时间戳以及Perl内置的rand()函数作为SHA-1哈希的种子。由于PID范围有限且时间戳可被预测或泄露,攻击者能够推算出有效的会话ID,从而绕过CSRF防护机制,执行未授权操作。
该漏洞的核心在于Random.pm中的备用随机数生成逻辑缺乏密码学强度。当系统熵源不可用时,代码使用Perl内置的rand()函数,该函数属于伪随机数生成器(PRNG),不具备抗预测性。生成会话ID的要素包括:1. rand()的输出(可预测);2. 进程PID(通常在32768以内,易枚举);3. 高精度Epoch时间(可通过分析HTTP响应头的Date字段或网络延迟推测)。攻击者通过收集这些信息,可以大幅缩小搜索空间,并在本地复现目标服务器的会话ID生成过程。由于该模块用于CSRF防御,一旦会话ID被预测,攻击者即可构造有效的CSRF Token,完全绕过Web应用的安全校验。