漏洞概述 CVE ID: CVE-2026-38329 产品名称: Bludit 受影响版本: < 3.18.4 问题类型: 远程代码执行(RCE) 描述: Bludit CMS 在版本 3.18.4 之前允许通过 API 插件进行远程代码执行(RCE)。 端点未执行授权检查且缺乏文件扩展名验证。攻击者可以使用有效的 API 令牌上传恶意 PHP 脚本并在服务器上执行任意代码。 详细分析 漏洞 1: 缺少权限检查 (CWE-862) 在 第 203 行,其他每个写端点都检查 ,但 端点没有。 端点权限检查: - - - - - - 无检查 任何拥有 API 令牌(token 参数)的人都可以上传文件,即使他们不应该有写权限。 漏洞 2: 无上传过滤 (CWE-434) 在 函数中(第 749 行),文件名取自 ,没有过滤。 文件名直接用于 文件写入时比较到 ,后者有扩展名白名单( )和文件名清理( ),但 跳过了所有这些。 结合以上两点:可以使用只读令牌上传 文件,服务器会保存并让 Apache 执行它。 利用代码 (POC) 测试环境: Bludit 3.18.2, PHP 8.1-apache 步骤 1: 创建一个简单的 webshell 步骤 2: 上传文件(注意:只需要令牌,无需认证) 步骤 3: 执行命令 修复方案 对 端点实施权限检查。 对上传的文件进行扩展名白名单和文件名清理。