返回更新列表
已更新Sep 2, 2026

CVE-2026-8347 — 已更新!

CVE-2026-8347 是 Concrete CMS 9.5.0 及更早版本中存在的一个不安全的直接对象引用(IDOR)漏洞,同时结合了错误的授权级别问题。该缺陷存在于 Express 关联的重新排序对话框中,允许仅对某个 Express 条目拥有查看权限的用户修改另一实体的关联排序。

分享

CVE-2026-8347 – Concrete CMS 中的不安全直接对象引用(IDOR)

概述

CVE-2026-8347 是一个影响 Concrete CMS 9.5.0 及更早版本的**不安全直接对象引用(IDOR)**漏洞。该问题存在于 Express 关联重新排序功能中,原因是授权检查不足。

当用户对关联进行重新排序时,应用程序会验证用户是否具有查看 Express 条目的权限,但未能确认用户是否被授权修改该条目。因此,权限受限的已认证用户可以操纵另一个 Express 实体的标识符并对其关联进行重新排序,即使没有编辑权限。

与 SQL 注入或远程代码执行漏洞不同,此缺陷涉及注入恶意命令或代码。相反,它通过更改用户可控的对象标识符(如实体 ID)来引用其他用户的资源,从而利用失效的访问控制。由于服务器未正确验证所请求对象的授权,它会对攻击者本不应能够修改的数据执行操作。

概念性漏洞逻辑:

// 用户请求对关联进行重新排序 $entityId = $_POST['entityId'];

$entity = $entityRepository->find($entityId);

// 仅验证用户可以访问该实体 if ($permissionChecker->canView($entity)) {

// 在未检查编辑权限的情况下重新排序关联
$associationService->reorder($entity, $_POST['order']);

return response()->json([
    'status' => 'success'
]);

}

为何存在漏洞

应用程序在执行状态更改操作之前仅验证查看权限。

攻击者可以修改请求中的 entityId 参数以引用其他用户的实体。由于未对修改操作本身执行授权检查,因此重新排序操作会在未授权的资源上成功执行。

影响

成功的攻击可能允许已认证用户:

  • 修改属于另一个 Express 实体的关联顺序。
  • 对应用程序数据执行未经授权的更改。
  • 破坏所存储信息的完整性。

该漏洞主要影响数据完整性,本身不允许 SQL 注入、远程代码执行或身份验证绕过。

修正后的代码(概念性)

应用程序应在处理重新排序请求之前,验证已认证用户是否具有修改特定实体的权限。

$entityId = $_POST['entityId'];

$entity = $entityRepository->find($entityId);

// 验证修改权限 if (!$permissionChecker->canEdit($entity)) {

return response()->json([
    'error' => 'Access denied.'
], 403);

}

// 用户已获授权 $associationService->reorder($entity, $_POST['order']);

return response()->json([ 'status' => 'success' ]);

受影响的软件

  • 产品: Concrete CMS
  • 受影响版本: 9.5.0 及更早版本
  • 修复版本: 9.5.1

缓解措施

升级到 Concrete CMS 9.5.1 或更高版本。开发人员应对每个状态更改请求强制执行适当的服务器端授权检查,并确保用户只能修改其被明确允许编辑的资源。

分类