CVE-2026-45230: 未认证路径遍历漏洞使DumbAssets易受攻击
CVE-2026-45230 (CVSS 9.1) 在 DumbAssets 1.0.11 及之前版本中允许未经认证的攻击者通过 POST /api/delete-file 端点的路径遍历删除任意文件。

执行摘要
一个严重的路径遍历漏洞,被追踪为 CVE-2026-45230 并且携带一个 CVSS评分为9.1,已经在 DumbAssets 版本 1.0.11 之前被披露。该漏洞存在于 POST /api/delete-file 端点及其 filesToDelete 数组参数中。未经身份验证的攻击者可以提供 ../ 序列来绕过目录边界验证并删除服务器上的任意文件,包括应用程序配置文件、数据库文件或系统二进制文件。这个漏洞特别危险,因为身份验证是可选的,默认情况下是禁用的,这意味着大多数面向公众的实例在没有任何访问控制的情况下暴露。一个解决这个问题的拉取请求已经在GitHub上合并,但截至本文撰写时,还没有发布包含修复的官方版本。
技术分析
这个漏洞存在于DumbAssets的文件删除逻辑中,DumbAssets是一个开源的资产管理工具。POST /api/delete-file 端点接受一个 filesToDelete 参数,这是一个文件路径数组。应用程序尝试验证这些路径是否保持在预期的资产目录内,但检查是不充分的。根据NVD条目和相关的GitHub拉取请求(#136),攻击者可以注入路径遍历序列,如 ../../../etc/passwd 或 ../../../var/www/html/config.php 来逃离受限目录。
验证失败的根源在于应用程序如何处理 filesToDelete 数组。代码没有规范化路径并验证它们是否位于允许的基础目录下,而是执行一个简单的子字符串或前缀匹配,这可以通过编码或嵌套遍历序列来绕过。默认情况下,端点不需要身份验证——身份验证控制是可选的,默认情况下是禁用的,根据项目的配置。这意味着任何能够访问Web界面的未经身份验证的用户都可以利用这个漏洞。
利用CVE-2026-45230的攻击者可以删除关键文件,例如:
- 应用程序配置文件(例如,
config.php,.env),导致服务中断或进一步利用。 - 数据库文件(例如,SQLite数据库),导致数据丢失。
- 系统二进制文件或库,可能使服务器无法操作。
- Web根文件,篡改或关闭应用程序。
CVSS 9.1评分反映了低攻击复杂性,不需要特权,不需要用户交互,以及对完整性和可用性的高影响。攻击向量是基于网络的,范围没有改变——攻击者不能直接通过这个漏洞转换到其他系统,但局部影响是严重的。
缓解措施与建议
在官方补丁版本发布之前,防御者应采取以下步骤:
-
立即启用身份验证。 可选的身份验证控制,默认情况下是禁用的,可以通过配置启用。这增加了一个基本的访问控制层,阻止未经身份验证的利用。查看DumbAssets配置文档以了解相关设置。
-
限制网络访问。 如果DumbAssets不需要暴露在互联网上,将其放置在防火墙或VPN后面。对于内部部署,限制访问到受信任的IP范围。
-
手动应用补丁。 修复已经合并到项目的主分支中,在拉取请求#136中。熟悉手动补丁的管理员可以将该PR中的更改应用到他们的本地安装中。补丁引入了适当的路径规范化和验证,然后才删除文件。
-
监控利用情况。 检查服务器日志,寻找
/api/delete-file请求中不寻常的模式,多个../序列或意外的文件路径。在预期的资产目录之外删除配置或数据库文件是一个强烈的入侵指标。 -
备份关键数据。 确保定期备份应用程序数据和配置存储在服务器之外,以便在攻击者删除文件时可以恢复。
订阅更新
将最新的网络安全资讯直接发送到您的邮箱。

