CVE-2026-3256HTTP::Session(Perl)0.53及之前版本存在严重安全漏洞。该库默认使用SHA-1哈希生成会话ID,但其种子由内置的rand函数、高精度时间戳和进程ID(PID)组成。由于PID取值范围有限,时间戳可被猜测,且rand函数不适用于加密场景,导致生成的会话ID具有可预测性。攻击者可利用此漏洞劫持用户会话,造成严重后果。
该漏洞的根本原因在于HTTP::Session库在生成会话ID时缺乏足够的熵源。具体而言,`HTTP::Session::ID::SHA1`模块使用SHA-1哈希算法,但其输入数据包括Perl内置的`rand`函数返回值、高精度epoch时间以及进程ID(PID)。`rand`函数是伪随机数生成器(PRNG),不具备加密安全性,其输出可被预测。PID通常是一个较小的整数,熵值极低。虽然epoch时间看似随机,但往往可以通过HTTP响应头中的Date字段精确获取或被推断。由于这些输入因素的可预测性,攻击者可以暴力枚举或直接计算出有效的会话ID,从而绕过身份验证机制,接管用户账户。此外,`HTTP::Session::ID::MD5`模块也存在相同的缺陷。