IPBUF安全漏洞报告
English
CVE-2026-33686 CVSS 8.8 高危

CVE-2026-33686 Sharp CMS路径遍历漏洞

披露日期: 2026-03-26

漏洞信息

漏洞编号
CVE-2026-33686
漏洞类型
路径遍历
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Sharp CMS (Laravel Package)

相关标签

路径遍历SharpLaravelCVE-2026-33686文件上传

漏洞概述

Sharp是一个基于Laravel框架构建的内容管理包。在9.20.0之前的版本中,该组件的FileUtil类被发现存在路径遍历漏洞。由于应用程序未能正确清理文件扩展名,攻击者可以将路径分隔符注入并传递到存储层。该漏洞源于FileUtil::explodeExtension()函数在处理文件名时的逻辑缺陷,可能导致文件被上传至非预期的目录。官方已在9.20.0版本中通过改进扩展名提取逻辑修复了此问题。

技术细节

该漏洞位于Sharp CMS的`src/Utils/FileUtil.php`文件中的`FileUtil::explodeExtension()`函数。原实现使用`strrpos()`来查找文件名中最后一个点以分割文件名和扩展名,但未对分割后的结果进行严格的输入验证。这允许攻击者在文件名字段中插入路径分隔符(如`../`或`/`)。当这些受污染的字符串被传递给底层存储系统时,应用程序会解析这些路径分隔符,导致文件被写入或读取到Web根目录或其他敏感位置之外。攻击者可利用此漏洞覆盖关键配置文件或植入Webshell。修复方案采用了`pathinfo(PATHINFO_EXTENSION)`原生函数提取扩展名,并配合正则表达式严格过滤基础名称和扩展名,有效阻止了路径遍历字符的混入。

攻击链分析

STEP 1
侦察
识别使用Sharp CMS且版本低于9.20.0的Laravel应用程序。
STEP 2
载荷构造
构造包含路径遍历序列(如../)的恶意文件名,例如'normal.png/../../shell.php'。
STEP 3
漏洞利用
通过应用程序的文件上传接口发送请求,触发FileUtil::explodeExtension()函数处理恶意文件名。
STEP 4
文件写入
利用未经过滤的路径分隔符,将文件写入服务器预期的上传目录之外,可能导致恶意代码执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<?php /* * PoC for CVE-2026-33686 (Sharp CMS Path Traversal) * This demonstrates how a malicious filename can be constructed to exploit the vulnerability. */ // Simulating the vulnerable input $malicious_filename = "image.png/../../evil.php"; // In the vulnerable code, strrpos() splits at the last dot // The logic fails to sanitize path separators in the extension part // resulting in potential path traversal when saving the file. echo "Payload Filename: " . $malicious_filename . "\n"; echo "If uploaded via Sharp CMS < 9.20.0, this may write 'evil.php' to a parent directory.\n"; ?>

影响范围

Sharp CMS < 9.20.0

防御指南

临时缓解措施
建议立即检查并更新Laravel项目中的Sharp依赖包至安全版本。在无法立即升级的情况下,应部署Web应用防火墙(WAF)规则,拦截包含路径遍历字符(如'../', '%2e%2e/')的HTTP请求,或临时禁用受影响模块的文件上传功能以降低风险。

参考链接

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