Onedev v7.4.14 路径遍历漏洞分析(CVE-2022-38301)

漏洞简述

OneDev 是开源的一体化轻量DevOps平台,在OneDev 7.4.14及以前版本中存在路径遍历漏洞,具有项目管理权限的攻击者可以将恶意 jar 文件上传到 lib 目录,覆盖原有jar包,攻击者可利用此漏洞在服务器中写入任意文件或远程执行恶意代码。

  • 漏洞CVSS评分:8.8(高危)
  • 受影响组件版本范围:Onedev <= v7.4.14

漏洞分析

问题代码分析

项目管理员可以在 OneDev 的`build`模块对自己的一个项目进行构建,同时在`build`模块中提供了手动上传`Artifacts`功能。

以v7.4.14为例,当用户点击上传后会调用`ArtifactUploadPanel.java`中的`onSubmit`函数将该用户选择的自定义文件上传到服务器,其中如果用户自定义了`Directory` , `filePath`将会采用字符串拼接的方式将用户自定义的目录名和文件名进行组合,导致攻击者可以上传文件至任意路径。

Onedev v7.4.14 路径遍历漏洞分析(CVE-2022-38301)

上传 Artifacts 流程验证

  1. 在上传`Artifacts`时任意选择一张图片进行上传,`Directory`可以自定义,这里先留空。
Onedev v7.4.14 路径遍历漏洞分析(CVE-2022-38301)
Onedev v7.4.14 路径遍历漏洞分析(CVE-2022-38301)
  1. 上传时如果自定义目录名为空,则默认上传到后台的项目对应的`artifacts`目录:
Onedev v7.4.14 路径遍历漏洞分析(CVE-2022-38301)

漏洞复现

  1. 创建一个新项目并进行构建(`build`)
Onedev v7.4.14 路径遍历漏洞分析(CVE-2022-38301)
  1. 系统`build`功能代码对应为`io.onedev.server-plugin-executor-serverdocker-7.4.14.jar`中的`ServerDockerExecutor`类。如果攻击者能将其替换为自己定义的恶意jar包,将会远程执行攻击者可控的代码。
Onedev v7.4.14 路径遍历漏洞分析(CVE-2022-38301)
  1. 因此攻击者可以制作一个恶意的jar包,将其命名为“io.onedev.server-plugin-executor-serverdocker-7.4.14.jar”,然后通过构建恶意路径(`../../../../../../lib`)上传到服务的lib目录(如/opt/onedev/lib),原有的同名jar包将被替换。
Onedev v7.4.14 路径遍历漏洞分析(CVE-2022-38301)
Onedev v7.4.14 路径遍历漏洞分析(CVE-2022-38301)
  1. 此时进入oneDev服务器“/opt/onedev/lib”目录进行查看,发现原来的“io.onedev.server-plugin-executor-serverdocker-7.4.14.jar”已经替换成攻击者上传的jar包。
Onedev v7.4.14 路径遍历漏洞分析(CVE-2022-38301)
  1. 由于执行`build`功能的 jar 包已被替换,重启服务后重新进行build,发现恶意代码被执行:
Onedev v7.4.14 路径遍历漏洞分析(CVE-2022-38301)

针对路径遍历漏洞对开发者的建议

  • 避免在调用文件系统 API 时直接传递用户输入数据
  • 对用户提交的文件名进行归一化,并检查该文件名是否包含路径遍历序列如“..”、“/”、” “
  • 将用户上传内容限定至特定的上传路径
  • 针对文件访问的功能应使用一个硬编码的白名单列表,拒绝任何访问其他文件类型的请求

下图为 onedev v7.4.15针对路径遍历漏洞的修复代码:

Onedev v7.4.14 路径遍历漏洞分析(CVE-2022-38301)

对用户的修复建议

将 Onedev 升级至 7.4.15 及更高版本

查看详细漏洞详情页

https://www.oscs1024.com/hd/MPS-2022-55460

快速检测项目中引用组件的安全风险

https://www.murphysec.com/

发布者:墨菲安全,转发请注明出处:https://www.murphysec.com/blog/vulnerability-analysis/4471.html

(0)
上一篇 2023年1月9日 14:47
下一篇 2023年1月9日 15:07

相关推荐

  • Spring Cloud Gateway代码注入漏洞分析(CVE-2022-22947)

    漏洞简述 3月1日,VMware发布了针对Spring Cloud Gateway的漏洞通告(https://tanzu.vmware.com/security/cve-2022-22947),当actuator端点开启并对外暴露时,攻击者可以构造恶意请求实现远程任意代码执行。 Spring Cloud Gateway是Spring Cloud 生态中的AP…

    2023年1月4日
  • Spark 存在 shell 命令注入(CNVD-C-2022-163612

    漏洞简述 3月24日,墨菲安全实验室情报预警监控发现 spark 提交修复 shell 命令注入的代码,当上传文件名可以被攻击者控制时,就可以构造恶意文件名造成远程任意命令执行。 Spark 是用于大规模数据处理的统一分析引擎。 用户上传文件后,tar 文件会被 hadoop 的 tar 命令解压,如果文件名被用户恶意构造后,就会导致 shell 命令注入。…

    2023年1月4日
  • Apache Spark UI 命令注入漏洞(CVE-2022-33891)

    OSCS(开源软件供应链安全社区)推出免费的漏洞、投毒情报订阅服务,社区用户可通过机器人订阅情报信息,具体订阅方式详见:https://www.oscs1024.com/?src=wx 漏洞概述 7月18日,OSCS监测到Apache发布安全公告,修复了一个Apache Spark UI中存在的命令注入漏洞。漏洞编号:CVE-2022-33891,漏洞威胁等…

    漏洞分析 2023年1月5日
  • “Dirty Pipe”的故事-Linux 内核提权漏洞 (CVE-2022-0847)

    漏洞简述 3月7日,开发者 Max Kellermann 在他的博客(https://dirtypipe.cm4all.com/)中披露了一个能导致 Linux 权限提升的漏洞,编号为 CVE-2022-0847,他称之为 “The Dirty Pipe Vulnerability” (“脏管道”漏洞)。 Linux 5.10版本前的一次 commit 中,…

    2023年1月4日
  • Fastjson官方再次披露高危漏洞,包括rocketmq、jeecg-boot等近15%的github开源项目受影响

    2022年5月23日,fastjson 官方发布安全通报,fastjson <= 1.2.80 存在反序列化任意代码执行漏洞,在特定条件下可绕过默认autoType关闭限制,可能会导致远程服务器被攻击,风险影响较大。OSCS开源软件社区对此漏洞进行收录,漏洞信息如下: 漏洞评级:高危 影响组件:com.alibaba:fastjson 影响版本:&lt…

    漏洞分析 2023年1月4日

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

400-180-9568

邮件:hi@murphysec.com

工作时间:周一至周五,10:00-19:00,节假日休息

关注公众号

20230105-100741