Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-8237 — Concrete CMS 的深入 IDOR 分析文章,涵盖 message_detail 端点、缺失授权根因、攻击场景、影响及修复方案。 | Kitploit
工具/GitHubGitHub/aj2108/cve-2026-8237
身份验证与授权漏洞分析Web应用程序漏洞利用Web安全学习与教育
GitHubaj2108/cve-2026-8237

CVE-2026-8237

Concrete CMS 的深入 IDOR 分析文章,涵盖 message_detail 端点、缺失授权根因、攻击场景、影响及修复方案。

查看仓库
41个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-8237

CVE-2026-8237 是一个不安全的直接对象引用(IDOR)漏洞,由 Concrete CMS 9.5.0 及更早版本中缺失授权检查所致。该缺陷存在于 /ccm/frontend/conversations/message_detail 端点,该端点仅根据用户提供的消息标识符返回对话消息的完整内容。由于应用程序未验证请求者是否有权访问指定消息,未认证的攻击者可以枚举消息 ID 并检索本应保持私密的对话内容。与这些消息相关的文件附件下载 URL 也可能被披露。该问题已在 Concrete CMS 9.5.1 中修复。

受影响软件

属性值
产品Concrete CMS
受影响版本9.5.0 及更早版本
修复版本9.5.1
受影响端点/ccm/frontend/conversations/message_detail

漏洞类型

  • 类别:不安全的直接对象引用(IDOR)

  • CWE-862:缺失授权

根本原因

该端点使用客户端控制的消息 ID 检索对话消息,而未验证当前用户是否有权访问该特定消息。

漏洞工作流程概念上如下:

用户提供 messageId
↓
服务器获取消息
↓
无授权检查
↓
返回完整消息内容

由于从未验证所有权或访问权限,攻击者可以更改 messageId 值以访问其他用户的对话消息。

攻击场景

假设一个合法请求检索消息 150:

root@kitploit:~
GET /ccm/frontend/conversations/message_detail?messageId=150

攻击者只需更改标识符:

root@kitploit:~
GET /ccm/frontend/conversations/message_detail?messageId=151

如果服务器返回消息 151 的内容而不是拒绝访问,攻击者可以继续递增 ID 来枚举私密对话及其相关附件。

影响

成功利用可能允许攻击者:

  • 读取私密对话消息。
  • 访问受限页面或仅限会员页面中的讨论。
  • 查看审核队列中的消息。
  • 获取文件附件下载 URL。
  • 枚举有效的对话消息 ID。

该漏洞主要影响机密性,因为敏感信息可能在未经授权的情况下被披露。

严重性

指标评分
CVSS v3.1 (NVD)5.3(中危)
CVSS v4.0 (Concrete CMS)6.3(中危)

概念性漏洞代码

注意:供应商尚未发布实际的漏洞源代码。以下示例仅用于说明漏洞模式。

root@kitploit:~
$messageId = $_GET['messageId'];

$message = $conversationRepository->find($messageId);

// Missing authorization check
return response()->json([
    'message' => $message->getContent(),
    'attachments' => $message->getAttachments()
]);

为何存在漏洞

应用程序信任用户控制的 messageId,并在未确认请求者有权访问的情况下返回所请求的消息。

修复后的代码(概念性)

root@kitploit:~
$messageId = $_GET['messageId'];

$message = $conversationRepository->find($messageId);

if (!$authorizationService->canView($currentUser, $message)) {
    return response()->json([
        'error' => 'Access denied'
    ], 403);
}

return response()->json([
    'message' => $message->getContent(),
    'attachments' => $message->getAttachments()
]);

为何此修复有效

修复后的实现会在返回任何对话数据之前执行服务器端授权检查。即使攻击者修改了 messageId,除非用户有权访问该特定消息,否则请求将被拒绝。这可以防止对话内容和附件被未经授权地披露。

下载工具