CVE-2025-66292DPanel是一个用Go语言编写的开源服务器管理面板。在1.9.2之前的版本中,存在一处严重的任意文件删除漏洞。该漏洞位于/api/common/attach/delete接口,攻击者通过构造特殊的路径参数,利用路径遍历字符(../)可以删除服务器上的任意文件。由于该接口需要用户登录认证,攻击者只需拥有低权限账户即可利用此漏洞。此漏洞可能导致服务器配置被破坏、关键数据丢失,甚至可能造成服务中断。由于文件删除操作的不可逆性,即使后续修复漏洞,已删除的文件也无法恢复,造成的损失可能是永久性的。
漏洞根源在于app/common/http/controller/attach.go文件中的Delete函数未对用户输入的path参数进行充分验证。用户提交的路径直接传递给storage.Local{}.GetSaveRealPath方法,随后传入os.Remove系统调用执行文件删除。虽然common/service/storage/local.go中的辅助函数使用了filepath.Join,该函数会解析../字符串,但由于缺乏chroot或jail机制,解析后的路径仍可能超出预期目录范围。攻击者可通过构造类似../../../etc/passwd的路径,突破目录限制删除系统关键文件。此漏洞的利用前提是攻击者已成功登录DPanel管理后台,获取了有效的会话凭证。由于DPanel是服务器管理面板,攻击者删除的文件可能包括系统配置文件、日志文件、甚至其他用户的业务数据,危害极大。