CVE-2026-46720Perl语言库Net::Statsd::Tiny在0.3.8版本之前存在指标注入漏洞。由于未对指标名称和集合值中的换行符、冒号或管道符进行过滤,攻击者可利用不受信任的数据源注入恶意的statsd指标。这会导致监控数据被篡改,严重影响系统统计信息的完整性与可信度,从而误导运维人员的决策。
该漏洞核心原理在于Net::Statsd::Tiny库在构建Statsd协议数据包时,未对用户提供的指标名称和集合值实施严格的输入清洗。Statsd协议依赖特定的字符来解析数据结构:换行符用于分隔独立的指标条目,冒号用于连接指标名称与数值,而管道符则用于界定数值与指标类型(如计数器或计时器)。在受影响版本(<0.3.8)中,若应用程序直接将前端或API接收到的不可信数据传入该库,攻击者便能在数据流中恶意插入上述特殊字符。例如,通过在输入字段中插入“\n”,攻击者可强制协议解析器将单条请求拆分为多条伪造指标,从而注入虚假的流量或错误日志。这不仅绕过了预期的逻辑,更会导致监控系统数据源污染,使得运维人员基于错误的数据做出误判。尽管该漏洞主要影响数据完整性,但在某些依赖指标进行自动告警的场景下,也可能引发间接的安全风险。官方补丁通过引入正则匹配或字符过滤机制,阻止了这些分隔符的非法传入。