不安全的默认头部匹配器

作者: scudette创建于 2026年8月25日更新于 2026年9月1日
标签bughelp wanted

□ 错误报告

最近,由于grpc网关的默认信头匹配器,我们的项目https://docs.velociraptor.app/announcments/advisories/cve-2026-18972/

默认信头匹配器将所有 HTTP 信头复制到 grpc 元数据中而不过滤,允许任意的元数据项目意外添加. 如果 grpc 网关的用户没有设置有运行时间的特定标题匹配器 。 有了 Incoming HeaderMatcher () 选项, 就可以用 http header 注入的出乎意料的值污染元数据 。

我认为更好的安全设计是无线头匹配器,它需要刻意接受一些头被传送到元数据上. (即选择加入而不是选择退出). 如果用户试图捕捉特定的头,那么他们应该声明这些被注入到grpc元数据的特定的头.

□ 重现

默认运行时间 。 NewServeMux () 安装一个默认头匹配器, 将所有头复制到 grpc 元数据 。

□ 预期行为

如果新用户不仔细审查所有文件,他们就会期望grpc元数据是干净的,可以免费获取虚假值。

□ 实际行为

在默认配置中,grpc元数据项目可以通过外部的HTTP头来注入.

□你的环境

他们都支持Go版本和操作系统.

内容来源: grpc-ecosystem/grpc-gateway