Cacti SNMP命令注入漏洞CVE-2025-66399
Cacti 是基于 PHP、MySQL 和 RRDtool(Round Robin Database Tool)构建的开源性能监控与故障管理框架,模板化配置降低上手门槛。
一、基本情况
Cacti 的核心功能是对网络设备、服务器、应用程序等 IT 基础设施的性能指标进行采集、存储、可视化展示与告警管理,其插件生态丰富。

Cacti 最初由 Ian Berry 开发,目前由 Cacti Group 维护,广泛应用于企业级网络监控、数据中心运维等场景,以轻量、灵活、易扩展著称。
栋科技漏洞库关注到 Cacti 在 1.2.29 之前的版本中存在一个安全漏洞,该漏洞现在已经被追踪为CVE-2025-66399,CVSS 4.0评分为7.4。
二、漏洞分析
CVE-2025-66399是位于Cacti受影响版本中SNMP设备配置功能中存在的输入验证漏洞,通过SNMP团体字符串注入可导致远程代码执行。
问题核心在于Cacti对 SNMP团体字符串(用于查询网络设备的凭证)的处理方式。
当管理员或具有设备编辑权限的用户保存设备时,应用程序未能清理输入中危险字符,也就是说SNMP设备配置功能中存在输入验证缺陷。
即负责验证团体字符串(snmp_community)的代码缺少关键过滤器:用于 sanitization 的正则表达式“被有意留空(””),导致验证失效”。
这一疏忽意味着“换行符未被修改”。 由于系统未剥离这些字符,攻击者可注入恶意命令,后端系统会将其解释为单独指令。
具体来说,在版本低于1.2.29时,SNMP设备配置功能中存在输入验证漏洞,经过身份验证的Cacti用户提供精心制作的SNMP社区字符串。
而这些精心制作的SNMP社区字符串中包含控制字符(包括换行符),这些字符会被数据库原样接受并存储,随后嵌入后端SNMP操作中。
这就意味着,在某些环境中,下游SNMP工具或包装器会将换行分隔的令牌解释为命令边界,这可能导致以Cacti进程的权限执行意外命令。
因此,其SNMP设备配置功能中存在的这一输入验证漏洞吗,使得攻击者能够在受影响系统上执行任意命令,且执行权限与Cacti进程相同。
攻击者可执行具有 Cacti 进程权限的任意命令,其后果严重,成功利用可导致: 未授权修改监控数据 ;执行系统级命令 ;未授权文件写入。
三、POC概念验证
公告提供了“特制多行团体字符串”存储方式的清晰示例。攻击者可注入如下载荷:
管理员已设置登录后刷新可查看四、影响范围
Cacti < 1.2.29
五、修复建议
Cacti >= 1.2.29
六、参考链接
管理员已设置登录后刷新可查看