# XXL-JOB 垂直越权漏洞 CVE-2022-36157

## 漏洞描述

XXL-JOB 是一个分布式任务调度平台，其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线，开箱即用。XXL-JOB 分为 admin 和 executor 两端，前者为后台管理页面，后者是任务执行的客户端。

在 XXL-JOB v.2.3.1 版本及以前， 存在垂直越权漏洞，能够使用低权限帐户执行管理员功能。该漏洞在 v.2.4.0 版本修复。

参考链接：

- https://github.com/advisories/GHSA-7qq9-9g2w-56f9

## 漏洞影响

```
XXL-JOB <= v2.3.1
```

## 网络测绘

```
app="XXL-JOB" || title="任务调度中心" || ("invalid request, HttpMethod not support" && port="9999")
```

## 环境搭建

本地搭建 XXL-JOB v2.3.1，源码 https://github.com/xuxueli/xxl-job/archive/refs/tags/2.3.1.zip

环境启动后，访问 `http://your-ip:8080/xxl-job-admin/toLogin` 即可查看到管理端（admin），访问 `http://your-ip:9999` 可以查看到客户端（executor）。

默认口令 `admin/123456` 登录后台：

![](images/XXL-JOB%20默认%20accessToken%20身份绕过漏洞/image-20241112174933070.png)

## 漏洞复现

创建一个普通用户 user：

```
user/GO_7YhvzrHF4
```

![](images/XXL-JOB%20垂直越权漏洞%20CVE-2022-36157/image-20241113085305599.png)

以普通用户 user 身份重新登录：

![](images/XXL-JOB%20垂直越权漏洞%20CVE-2022-36157/image-20241113085718183.png)

普通用户与管理员用户导航栏：

- 管理员用户 admin：运行报表、任务管理、调度日志、执行器管理、用户管理、使用教程
- 普通用户 user：运行报表、任务管理、调度日志、使用教程

以普通用户 user 身份直接访问 `http://your-ip:8080/xxl-job-admin/jobgroup`，即可获取执行器管理权限：

![](images/XXL-JOB%20垂直越权漏洞%20CVE-2022-36157/image-20241113090022721.png)

## 漏洞修复

该漏洞在 v.2.4.0 版本修复。
