CVE-2025-61789CVE-2025-61789 是 Icinga DB Web(Icinga 监控系统的图形化界面组件)中存在的一个信息泄露漏洞。该漏洞允许已授权但权限受限的用户通过在过滤器中使用受保护或被列入黑名单的自定义变量(custom variables),以间接方式猜测或推断出这些变量的实际值。Icinga DB Web 提供了两种机制来保护敏感的自定义变量:一是 `icingadb/protect/variables` 配置项用于保护变量不被直接访问,二是 `icingadb/denylist/variables` 配置项用于将变量列入拒绝访问列表。然而,在 1.1.4 和 1.2.3 之前的版本中,这两种保护机制都存在缺陷,攻击者可以利用过滤器功能绕过这些保护措施。该漏洞的 CVSS 评分为 5.3,属于中等严重等级。虽然攻击需要低权限认证(PR:L),但攻击复杂度较高(AC:H),且无需用户交互(UI:N),通过网络即可发起攻击。该漏洞主要影响系统的机密性(C:H),对完整性和可用性没有影响。该漏洞由 GitHub 安全团队通过 GitHub Security Advisories 渠道报告,并在 2025 年 10 月 16 日公开披露。Icinga 团队已在新版本中修复了此问题,修复后的版本会在检测到使用受保护或被列入黑名单的自定义变量时返回错误响应,从而阻止信息泄露。
Icinga DB Web 是 Icinga 2 监控系统的 Web 前端组件,提供了直观的图形化界面用于展示监控数据。在 Icinga 监控系统中,管理员可以为主机和服务定义自定义变量(custom variables),这些变量可能包含敏感信息,如 API 密钥、密码或其他机密数据。为保护这些敏感信息,Icinga DB Web 提供了两种配置机制:
1. `icingadb/protect/variables`:用于指定哪些自定义变量受到保护,不允许普通用户查看其值。
2. `icingadb/denylist/variables`:用于将特定的自定义变量列入拒绝访问列表。
漏洞的根本原因在于,当授权用户在过滤器(filter)中使用这些受保护或被列入黑名单的自定义变量时,系统没有正确地阻止该操作。相反,系统会根据过滤器条件返回匹配的结果,攻击者可以通过观察返回结果的数量或其他特征来推断变量的实际值。例如,攻击者可以构造类似 `vars.sensitive_var == "guess_value"` 的过滤器,通过二分查找或暴力枚举的方式逐步缩小变量值的范围,最终推断出完整的变量值。
这种攻击方式本质上是一种基于布尔/盲注的信息泄露技术(Blind Information Disclosure)。修复方案是在版本 1.1.4 和 1.2.3 中增加了对过滤器中使用受保护变量的检测,当检测到此类操作时,系统会直接返回错误响应,从而阻止信息泄露通道。