Debian DLA-3252-1:cacti - LTS 安全更新

critical Nessus 插件 ID 169445

简介

远程 Debian 主机上缺少一个或多个与安全性相关的更新。

描述

远程 Debian 10 主机上安装的程序包受到 dla-3252 公告中提及的多个漏洞影响。

- Cacti 1.2.12 中的 (1) reports_admin.php、(2) data_queries.php、(3) data_input.php、(4) graph_templates.php、(5) graphs.php、(6) reports_admin.php 和 (7) data_input.php 中存在多个跨站脚本 (XSS) 漏洞。(CVE-2020-23226)

- templates_import.php (Cacti 1.2.13) 中存在跨站脚本 (XSS) 漏洞,原因在于模板导入预览期间 xml_path 字段中会发生不当错误消息转义 (CVE-2020-25706)

- 如果客户机用户具有图形实时权限,Cacti 1.2.8 中的 graph_realtime.php 允许远程攻击者通过 cookie 中的 shell 元字符执行任意 OS 命令。(CVE-2020-8813)

- 在某些 ldap 条件下,可使用某些凭据类型绕过 Cacti 身份验证。
(CVE-2022-0730)

- Cacti 是一个开源平台,为用户提供了强大且可扩展的操作监控和故障管理框架。受影响的版本中存在命令注入漏洞,如果为任何受监控设备选择了特定数据源,则未经身份验证的用户可在运行 Cacti 的服务器上执行任意代码。该漏洞存在于“remote_agent.php”文件中。用户无需认证即可访问此文件。此函数通过“get_client_addr”检索客户端的 IP 地址,并通过“gethostbyaddr”将此 IP 地址解析为相应的主机名。此后,验证“poller”表中是否存在主机名对应于解析后主机名的条目。如果找到这样的条目,函数将返回“true”,并且客户端获得授权。
由于“get_client_addr”函数的实现,用户可以绕过此授权。该函数在“lib/functions.php”文件中定义,会检查若干“$_SERVER”变量以确定客户端的 IP 地址。攻击者可以任意设置以“HTTP_”开头的变量。
由于“poller”表中有一个默认条目包含运行 Cacti 的服务器的主机名,所以攻击者可通过提供“Forwarded-For:<TARGETIP>”标头等方式来绕过认证。这样,“get_client_addr”函数将返回运行 Cacti 的服务器的 IP 地址。接着调用“gethostbyaddr”,将此 IP 地址解析为服务器的主机名,由于默认条目,服务器将通过“poller”主机名检查。在绕过“remote_agent.php”文件的授权后,攻击者可触发不同的操作。其中一项操作称为“polldata”。被调用的函数“poll_for_data”将检索一些请求参数,并从数据库加载相应的“poller_item”条目。如果“poller_item”的“action”等于“POLLER_ACTION_SCRIPT_PHP”,则使用“proc_open”函数执行 PHP 脚本。受攻击者控制的参数“$poller_id”是通过允许任意字符串的函数“get_nfilter_request_var”来检索。之后,将此变量插入到传递给“proc_open”的字符串中,这会导致命令注入漏洞。例如,通过提供“poller_id=;id”,可执行“id”命令。为了执行有漏洞的调用,攻击者必须提供“host_id”和“local_data_id”,其中相应的“poller_item”的“action”设置为“POLLER_ACTION_SCRIPT_PHP”。这两个 ID(“host_id”和“local_data_id”)都可以轻松地暴力破解。唯一的要求是存在具有“POLLER_ACTION_SCRIPT_PHP”操作的“poller_item”。这在生产实例中很可能发生,因为此操作是通过一些预定义的模板(如“Device - Uptime”或“Device - Polling Time”)添加的。如果将“poller_item”的“action”类型配置为“POLLER_ACTION_SCRIPT_PHP”(“2”),则此命令注入漏洞允许未经身份验证的用户执行任意命令。为防止授权绕过,应阻止攻击者让“get_client_addr”(文件“lib/functions.php”)返回任意 IP 地址。这可通过不接受“HTTP_...”“$_SERVER”变量来实现。如果出于兼容性原因应保留这些数量,则至少应防止攻击者伪造运行 Cacti 的服务器的 IP 地址。此漏洞已在 1.2.x 和 1.3.x 版本分支中解决,“1.2.23”是包含该修补程序的第一个版本。(CVE-2022-46169)

请注意,Nessus 尚未测试这些问题,而是只依据应用程序自我报告的版本号进行判断。

解决方案

升级 cacti 程序包。

对于 Debian 10 buster,已在 1.2.2+ds1-2+deb10u5 版本中修复这些问题。

另见

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=951832

https://security-tracker.debian.org/tracker/source-package/cacti

https://www.debian.org/lts/security/2022/dla-3252

https://security-tracker.debian.org/tracker/CVE-2020-23226

https://security-tracker.debian.org/tracker/CVE-2020-25706

https://security-tracker.debian.org/tracker/CVE-2020-8813

https://security-tracker.debian.org/tracker/CVE-2022-0730

https://security-tracker.debian.org/tracker/CVE-2022-46169

https://packages.debian.org/source/buster/cacti

插件详情

严重性: Critical

ID: 169445

文件名: debian_DLA-3252.nasl

版本: 1.4

类型: local

代理: unix

发布时间: 2023/1/1

最近更新时间: 2023/9/11

支持的传感器: Agentless Assessment, Frictionless Assessment Agent, Nessus Agent, Nessus

风险信息

VPR

风险因素: High

分数: 8.4

CVSS v2

风险因素: High

基本分数: 9.3

时间分数: 8.1

矢量: CVSS2#AV:N/AC:M/Au:N/C:C/I:C/A:C

CVSS 分数来源: CVE-2020-8813

CVSS v3

风险因素: Critical

基本分数: 9.8

时间分数: 9.4

矢量: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

时间矢量: CVSS:3.0/E:H/RL:O/RC:C

CVSS 分数来源: CVE-2022-46169

漏洞信息

CPE: p-cpe:/a:debian:debian_linux:cacti, cpe:/o:debian:debian_linux:10.0

必需的 KB 项: Host/local_checks_enabled, Host/Debian/release, Host/Debian/dpkg-l

可利用: true

易利用性: Exploits are available

补丁发布日期: 2022/12/31

漏洞发布日期: 2020/2/22

CISA 已知可遭利用的漏洞到期日期: 2023/3/9

可利用的方式

Core Impact

Metasploit (Cacti 1.2.22 unauthenticated command injection)

参考资料信息

CVE: CVE-2020-23226, CVE-2020-25706, CVE-2020-8813, CVE-2022-0730, CVE-2022-46169