IPBUF安全漏洞报告
English
CVE-2026-40194 CVSS 3.7 低危

CVE-2026-40194 phpseclib时序攻击漏洞

披露日期: 2026-04-10

漏洞信息

漏洞编号
CVE-2026-40194
漏洞类型
时序攻击
CVSS评分
3.7 低危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
phpseclib

相关标签

CWE-208时序攻击phpseclibSSHInformation Disclosure

漏洞概述

phpseclib是一个PHP安全通信库。在受影响版本中,phpseclib\Net\SSH2::get_binary_packet() 方法使用 PHP 的 != 运算符来比较接收到的 SSH 包 HMAC 与本地计算的 HMAC。由于 != 运算符在比较等长二进制字符串时会调用 memcmp(),该函数会在第一个不匹配的字节处短路,导致非常量时间的比较行为。攻击者可利用时序差异推断 HMAC,威胁通信机密性。

技术细节

该漏洞源于 phpseclib\Net\SSH2::get_binary_packet() 函数在验证 SSH 包 HMAC 时使用了不安全的比较方式。代码直接使用了 PHP 的 != 运算符比较二进制字符串。在底层实现中,当比较两个等长字符串时,PHP 会调用 C 语言的 memcmp() 函数。memcmp() 采用“短路”逻辑,即一旦发现两个字节不相同,立即返回结果,而不继续比较后续字节。这意味着,比较所需的时间取决于数据匹配的长度。攻击者可以通过发送大量特制的 SSH 数据包,并精确测量服务器的响应时间,利用统计学方法分析时序差异。通过观察响应时间的微小变化,攻击者可以逐字节地爆破或验证 HMAC 的值。一旦掌握正确的 HMAC,攻击者可能伪造数据包或解密流量,从而窃取敏感信息。

攻击链分析

STEP 1
步骤1
攻击者建立与目标服务器的SSH连接。
STEP 2
步骤2
攻击者发送特制的SSH数据包,并逐步修改HMAC字段的值。
STEP 3
步骤3
攻击者记录并分析服务器处理每个数据包所需的微小响应时间差异。
STEP 4
步骤4
利用时序侧信道信息,攻击者推断出正确的HMAC值。
STEP 5
步骤5
利用有效的HMAC伪造数据包或解密通信内容,获取敏感信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<?php // PoC Code to demonstrate timing difference between != and hash_equals // This simulates the vulnerability in CVE-2026-40194 $correct_hmac = str_repeat('A', 32); // Simulated correct HMAC $guess = str_repeat('A', 31) . 'B'; // Simulated guess (last char wrong) $iterations = 10000; // 1. Test insecure comparison (!=) $start = microtime(true); for ($i = 0; $i < $iterations; $i++) { $result = ($correct_hmac != $guess); } $insecure_time = microtime(true) - $start; // 2. Test secure comparison (hash_equals) $start = microtime(true); for ($i = 0; $i < $iterations; $i++) { $result = hash_equals($correct_hmac, $guess); } $secure_time = microtime(true) - $start; echo "Insecure Comparison Time: " . number_format($insecure_time * 1000, 4) . " ms\n"; echo "Secure Comparison Time: " . number_format($secure_time * 1000, 4) . " ms\n"; ?>

影响范围

phpseclib < 3.0.51
phpseclib < 2.0.53
phpseclib < 1.0.28

防御指南

临时缓解措施
如果无法立即升级,建议在网络层实施严格的速率限制以增加时序攻击的难度,但这仅为临时措施,根本解决仍需升级代码。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表