CVE-2025-59425vLLM是一款开源的大型语言模型(LLM)推理和服务引擎,广泛应用于AI模型的部署和服务化场景。在0.11.0rc2版本之前,vLLM的API密钥验证机制存在一个时序攻击(Timing Attack)漏洞。该漏洞源于API密钥验证过程中使用了非恒定时间的字符串比较方法,导致验证耗时与提供的API密钥中正确字符的数量成正比关系。攻击者可以通过对大量请求进行精确的时间测量和统计分析,逐步推断出API密钥的每一个正确字符,最终实现完全的身份认证绕过。此漏洞的CVSS评分为7.5,属于高危级别,影响范围包括所有使用vLLM内置API密钥验证功能的部署环境。该漏洞的攻击向量为网络(AV:N),无需任何权限或用户交互即可利用,主要影响系统的机密性(C:H),但不影响完整性和可用性。由于vLLM在AI服务部署中的广泛使用,该漏洞对依赖其进行API访问控制的生产环境构成了严重威胁。漏洞已于2025年披露,vLLM项目团队在收到报告后迅速响应,并在0.11.0rc2版本中通过采用恒定时间比较算法修复了该问题。
该漏洞的核心技术原理在于vLLM API服务器在验证客户端提供的API密钥时,使用了Python标准库中的普通字符串比较操作(如`==`运算符或`str.compare()`方法)。这些比较方法在实现上采用了短路求值(short-circuit evaluation)策略:一旦发现两个字符不相等,就立即返回False。因此,当攻击者提供的密钥前缀与正确密钥匹配时,比较过程会执行更长时间,消耗更多的CPU周期。通过精确测量HTTP请求的响应时间差异(通常为微秒级别),攻击者可以推断出猜测的密钥前缀中有多少个字符是正确的。具体利用方式如下:
1. 攻击者首先向目标vLLM API服务器发送大量带有不同猜测API密钥的请求;
2. 使用高精度计时工具(如curl的`time`命令或自定义脚本)测量每个请求的响应时间;
3. 统计分析响应时间数据,识别出响应时间略长的请求——这些请求对应的密钥前缀包含更多正确字符;
4. 逐字符迭代上述过程,最终重构出完整的有效API密钥;
5. 使用获取的API密钥进行正常的身份认证,获得未授权访问权限。
修复方案是采用恒定时间比较算法(如Python的`hmac.compare_digest()`函数),无论输入如何都会执行相同时间的比较操作,从而消除时序侧信道。