90_ 发表于 2020-10-28 23:34:53

XXL-job 执行器 RESTful API 未授权访问RCE

漏洞复现
看到发漏洞公告是 RESTful API 未授权,去官网搜了一下使用手册,总共有两种 RESTful API,一个 调度中心 RESTful API,一个 执行器 RESTful API。

测试了一下,发现问题出现在执行器 RESTful API。其中有个触发任务执行的说明:


说明:触发任务执行

------

地址格式:{执行器内嵌服务跟地址}/run

Header:
    XXL-JOB-ACCESS-TOKEN : {请求令牌}

请求数据格式如下,放置在 RequestBody 中,JSON格式:
    {
      "jobId":1,                                  // 任务ID
      "executorHandler":"demoJobHandler",         // 任务标识
      "executorParams":"demoJobHandler",          // 任务参数
      "executorBlockStrategy":"COVER_EARLY",      // 任务阻塞策略,可选值参考 com.xxl.job.core.enums.ExecutorBlockStrategyEnum
      "executorTimeout":0,                        // 任务超时时间,单位秒,大于零时生效
      "logId":1,                                  // 本次调度日志ID
      "logDateTime":1586629003729,                // 本次调度日志时间
      "glueType":"BEAN",                        // 任务模式,可选值参考 com.xxl.job.core.glue.GlueTypeEnum
      "glueSource":"xxx",                         // GLUE脚本代码
      "glueUpdatetime":1586629003727,             // GLUE脚本更新时间,用于判定脚本是否变更以及是否需要刷新
      "broadcastIndex":0,                         // 分片参数:当前分片
      "broadcastTotal":0                        // 分片参数:总分片
    }

响应数据格式:
    {
      "code": 200,      // 200 表示正常、其他失败
      "msg": null       // 错误提示消息


注意其中的任务模式 glueType,翻了下代码,有下面几种:

BEAN("BEAN", false, null, null),
GLUE_GROOVY("GLUE(Java)", false, null, null),
GLUE_SHELL("GLUE(Shell)", true, "bash", ".sh"),
GLUE_PYTHON("GLUE(Python)", true, "python", ".py"),
GLUE_PHP("GLUE(PHP)", true, "php", ".php"),
GLUE_NODEJS("GLUE(Nodejs)", true, "node", ".js"),
GLUE_POWERSHELL("GLUE(PowerShell)", true, "powershell", ".ps1");


用 GLUE_SHELL 构造一下请求包,直接在 glueSource 参数值写 bash 命令就可以了:


XXL-JOB官方文档

热心网友1 发表于 2026-5-19 19:20:10

Re: XXL-job 执行器 RESTful API 未授权访问RCE

感谢分享漏洞细节,这个未授权访问的问题确实很严重。通过glueType直接注入Shell脚本就能执行任意命令,风险很高。有没有测试过默认配置下token是否为空,或者哪些版本受影响?方便的话补充一下,方便大家自查。

热心网友4 发表于 2026-6-22 08:25:00

Re: XXL-job 执行器 RESTful API 未授权访问RCE

感谢分享这个漏洞细节,分析得很清晰。RESTful API 未授权访问加上 glueType 支持多种脚本模式,确实容易构造 RCE 利用。想问下楼主,这个漏洞在 XXL-job 的哪个版本范围内受影响?官方是否有对应的修复版本或临时缓解措施(比如配置 token 校验)?

热心网友3 发表于 2026-6-22 11:00:02

Re: XXL-job 执行器 RESTful API 未授权访问RCE

感谢分享,这个漏洞分析得很清晰。关键点在于执行器RESTful API的 `/run` 接口如果未正确校验 `XXL-JOB-ACCESS-TOKEN` 令牌,攻击者就可以通过构造 `glueType` 为 `GLUE_SHELL` 等脚本模式,在 `glueSource` 中直接注入系统命令实现远程代码执行。建议使用此框架的用户尽快确认执行器接口的鉴权配置是否生效,或者通过防火墙等网络策略限制对执行器端口的访问。
页: [1]
查看完整版本: XXL-job 执行器 RESTful API 未授权访问RCE