★且听安全★-点关注,不迷路!
★漏洞空间站★-优质漏洞资源和小伙伴聚集地!
**漏洞信息
**
Atlassian Jira 存在服务端伪造请求漏洞 CVE-2022-26135,该漏洞是由于 Mobile Plugin for Jira 组件造成的,攻击者可通过 Jira REST API 发送特殊请求,从而发起 SSRF 攻击。
**漏洞分析
**
CVE-2022-26135 漏洞触发的 API 接口位于 `com.atlassian.jira.plugin.mobile.rest.v1_0.BatchResource` :
存在名为 `executeBatch` 的接口函数:
进入 `BatchService` 接口的实现类 `BatchServiceImpl` ,定位函数 `batch` :
跟进 `execute` 函数 :
`relativeLocation` 来自于 `requestBean` 中的 `location` :
接着传入 `toJiraLocation` 函数:
`path` 来自于输入参数 `location` ,是完全可控的。回到 `execute` 函数,获取到 `URL` 对象后,最终会调用 `httpClientProvider` 发送 HTTP 请求:
因为 `URL` 后半部分是可控的,如果设置 `location` 为 `@a.com` ,那么 `URL` 最终为 `http://jiraserver.com@a.com\` , `httpClientProvider` 实际是向 `a.com` 发送 HTTP 请求,导致出现 SSRF 漏洞。
修复方式
在 `BatchResource#validate` 函数中新增了对参数的验证:
`UriUtils.arePathsSafe` 函数也是在新版本中加入的,定义如下:
新增正则表达式规则 `PATH_TRAVERSAL` 对 `location` 参数进行检查。
由于传播、利用此文档提供的信息而造成任何直接或间接的后果及损害,均由使用本人负责,且听安全及文章作者不为此承担任何责任。
★且听安全★-点关注,不迷路!****
★漏洞空间站★-优质漏洞资源和小伙伴聚集地!