影响
当开发者或 CI 作业使用受影响的 Microsoft Kiota 版本处理由攻击者控制或影响的 OpenAPI 描述时,外部 $ref 条目可能导致构建主机获取远程 HTTP(S) 资源,或读取本地文件和项目目录树之外的文件。被引用的内容可能会内联到生成的客户端代码中,随后被提交或发布,从而形成泄露攻击者原本无法读取的数据的途径。供应商公告将已证实的影响限定为服务器端请求伪造以及远程或本地文件包含,并未报告代码执行 [S1] [S2]。
根本原因
受影响的 NuGet 包是 Microsoft.OpenApi.Kiota 和 Microsoft.OpenApi.Kiota.Builder。经审查的公告为这两个包列出了两个互不连续的受影响范围:1.29.1 之前的版本,以及从 1.30.0 起至 1.32.5 之前的版本 [S1] [S2]。这些版本在生成过程中解析外部 OpenAPI 引用时,默认没有拒绝未知来源或路径的策略。
修复措施
将较旧的版本分支升级到 1.29.1,或将当前版本分支升级到 1.32.5 或更高版本 [S1] [S3] [S4]。已修复版本默认拒绝外部引用,除非明确允许可信来源或路径。应严格限制允许列表,避免使用通配符信任,在生成前审查外部 OpenAPI 描述,并限制构建工作器的网络和文件系统访问权限。
FixVibe 覆盖范围
FixVibe 的 GitHub 仓库扫描会在受支持的 .NET 和 NuGet 清单及锁定文件中,识别 Microsoft.OpenApi.Kiota 和 Microsoft.OpenApi.Kiota.Builder 受影响依赖项的证据。精确解析出的版本可提供高置信度的版本证据;可能包含受影响版本的声明范围会以较低置信度报告。这是一则基于版本的公告:FixVibe 不会运行 Kiota、跟随外部引用、读取文件、发出探测请求、判定 OpenAPI 描述是否由攻击者控制,也不会声称 SSRF 或文件包含已经发生 [S1] [S2]。
