平台
php
组件
phpseclib
修复版本
1.0.28
phpseclib是一个PHP安全通信库。在3.0.51、2.0.53和1.0.28版本之前,phpseclib\Net\SSH2::getbinarypacket()使用PHP的!=运算符比较接收到的SSH数据包HMAC与本地计算的HMAC。在等长二进制字符串上使用!=在PHP中会使用memcmp(),该函数在第一个不同字节处短路。这是一种真实的变量时间比较,已通过基准测试证明。此漏洞已在3.0.51、2.0.53和1.0.28版本中修复。
CVE-2026-40194 影响 phpseclib SSH2 库,特别是 getbinarypacket() 函数。该函数使用 PHP 的 != 运算符来比较收到的 SSH 数据包的 HMAC 与本地计算的 HMAC。虽然 PHP 使用 memcmp() 进行相等长度的二进制比较,但由于 memcmp() 在某些 PHP 实现和版本中的行为方式,此过程仍然可能是时间可变的。这引入了一种时间可变比较漏洞 (CWE-208)。虽然严重程度被认为是较低的(纵深防御),但仍然存在时间侧信道攻击的可能性,尽管在实践中难以利用。该漏洞已通过性能基准测试进行验证,这些测试显示了比较时间的差异。
利用此漏洞需要攻击者能够向易受攻击的服务器发送恶意 SSH 数据包。攻击基于测量服务器验证 HMAC 所需的时间。响应时间上的细微差异可能会泄露有关正确 HMAC 的信息。但是,这种攻击类型的难度很大,因为它需要对网络环境进行精确控制,并能够进行准确的时间测量。此外,纵深防御措施,例如处理时间的随机噪声,可能会进一步使利用变得困难。
Applications utilizing phpseclib SSH2 for SSH2 functionality are at risk. This includes web applications, automation scripts, and any other PHP-based systems relying on this library for secure remote access. Systems with older, unpatched versions of phpseclib SSH2 are particularly vulnerable.
• php: Examine PHP application code for usage of phpseclib SSH2. • php: Check the version of phpseclib SSH2 being used within your PHP applications.
composer show phpseclib\phpseclib• php: Review application logs for SSH connection errors or disconnections, which could indicate attempted exploitation. • generic web: Monitor SSH server logs for unusual connection patterns or frequent disconnections.
disclosure
漏洞利用状态
EPSS
0.01% (2% 百分位)
CISA SSVC
解决 CVE-2026-40194 的方法是升级到 phpseclib 的 3.0.51 版本。此版本通过将 != 比较替换为时间恒定的比较实现来修复漏洞。强烈建议升级使用 phpseclib SSH2 的应用程序以减轻此风险。此外,请审查一般安全实践,以确保对潜在的侧信道攻击进行纵深防御。应尽快执行升级以尽量减少漏洞暴露窗口。
Actualice la biblioteca phpseclib a la versión 3.0.51, 2.0.53 o 1.0.28 para mitigar la vulnerabilidad. La actualización reemplaza la comparación insegura con el operador != por la función hash_equals(), que proporciona una comparación segura de cadenas binarias.
漏洞分析和关键警报直接发送到您的邮箱。
时间侧信道攻击利用系统执行操作所需时间的差异来提取机密信息,例如加密密钥。
虽然存在漏洞,但实际利用具有挑战性,并且需要特定条件。它被认为是纵深防御措施。
如果无法立即升级,请考虑实施纵深防御措施,例如在处理时间上添加随机噪声。
检查您使用的 phpseclib SSH2 的版本。如果它早于版本 3.0.51,则容易受到攻击。
目前没有用于检测此漏洞的特定工具,但建议进行代码审计和渗透测试。
CVSS 向量