聚焦源代码安全,网罗国内外最新资讯!
该漏洞的核心在于 Cacti 处理SNMP 社区字符串(用于查询网络设备的凭据)的方式。当管理员或拥有设备编辑权限的用户保存设备配置时,应用程序未能对输入内容中的危险字符进行清洗。
安全公告指出,该漏洞是“SNMP 设备配置功能中的输入验证缺陷”。具体来说,负责验证社区字符串(snmp_community)的代码缺失了一个关键的过滤器。用于清理的正则表达式“被有意留空("),从而禁用了验证”。这意味着“换行符未被修改”。
由于系统没有剥离这些字符,攻击者可以注入恶意命令,而后端系统会将这些命令解释为独立的指令。安全公告提到,“经过身份验证的 Cacti 用户可以提交包含控制字符(包括换行符)的恶意 SNMP 社区字符串,这些字符串会被接受、按原样存储到数据库中,并随后嵌入到后端 SNMP 操作中。”
当 Cacti 尝试使用下游工具(如 snmpwalk 或封装器)轮询设备时,注入的换行符会破坏命令结构。安全公告提到,“在下游 SNMP 工具或封装器将换行符分隔的令牌解释为命令边界的环境中,这可能导致以 Cacti 进程权限执行非预期的命令。”
该安全公告还提供了一个清晰的例子,说明“恶意多行社区字符串”是如何被存储的。结果任意命令可能会以 Cacti 进程的权限被执行。
此漏洞的后果非常严重,如遭成功利用可导致:
越权修改监控数据
执行系统级命令
越权文件写入
Cacti 服务器被完全控制的可能性
开发团队已发布补丁以修复此缺陷。强烈建议管理员立即升级到 1.2.29 版本。
题图:Pixabay License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。
觉得不错,就点个 “在看” 或 "赞” 吧~

