# OneCollector exporter 读取无界 HTTP 响应体漏洞 ## 漏洞概述 当使用 `OpenTelemetry.Exporter.OneCollector` 导出器通过 HTTP 将遥测数据发送到后端/收集器时,如果请求失败(例如返回 HTTP 4xx 或 5xx 状态码),响应体会被读取到内存中,且没有对读取的字节数设置上限。 ## 影响范围 - **受影响软件包**: `OpenTelemetry.Exporter.OneCollector` - **受影响版本**: `<= 1.15.0` - **修复版本**: `1.15.1` - **严重程度**: 中等 (5.3 / 10) - **CVSS 评分**: - 攻击向量: 相邻 (Adjacent) - 攻击复杂度: 高 (High) - 特权要求: 无 (None) - 用户交互: 无 (None) - 范围: 未改变 (Unchanged) - 机密性: 无 (None) - 完整性: 无 (None) - 可用性: 高 (High) ## 影响 如果应用程序配置的 `OneCollector` 导出器指向一个被攻击者控制的端点(或遭受中间人攻击),攻击者可以返回一个任意大的响应体。这会导致应用程序在消费过程中产生无限制的内存分配,进而引发高瞬态内存压力、垃圾回收停滞或导致进程终止的 `OutOfMemoryException`。 ## 修复方案 - **版本升级**: 使用 `1.15.1` 或更高版本。 - **代码修复**: 更新 `OneCollector` 导出器,在错误条件下限制从响应体读取的字节数(限制为 4MB)。 - **缓解措施**: 使用网络级控制(如防火墙规则、mTLS、服务网格)来防止配置的后端/收集器端点遭受中间人 (MitM) 攻击。