Эх сурвалжийг харах

【优化】任务信息、执行日志API完善,避免越权隐患;

xuxueli 1 жил өмнө
parent
commit
a09f7f30a1

+ 4 - 4
doc/XXL-JOB官方文档.md

@@ -2384,16 +2384,16 @@ public void execute() {
 - 2、【修复】"CVE-2022-43402" groovy低版本漏洞修复。
 - 3、【修复】"CVE-2024-29025" netty低版本漏洞修复。
 - 4、【修复】"CVE-2024-3366" freemarker模板注入漏洞修复。
-- 5、【修复】"CVE-2022-43183" 越权漏洞修复。
+- 5、【修复】"CVE-2022-43183" 越权漏洞增强修复。
 - 6、【修复】调度日志页面XSS漏洞修复(ISSUE-3360)。
 - 7、【优化】执行器注册节点显示优化,解决注册节点过多时无法展示问题。
 
 ### 7.35 版本 v2.4.2 Release Notes[规划中]
 - 1、【升级】多个项目依赖升级至较新稳定版本,涉及netty、groovy、gson、springboot、mybatis等;
-- 2、【修复】"CVE-2024-42681" 子任务越权漏洞修复;
-- 3、【修复】"CVE-2023-33779" 任务API越权问题修复;
+- 2、【修复】漏洞修复,包括 "CVE-2024-42681" 子任务越权漏洞修复、"CVE-2023-33779" 任务API越权问题修复;
 - 3、【优化】Cron解析组件优化代码优化。
-- 4、【优化】修改密码交互调整,解决CSRF问题隐患。
+- 4、【优化】修改密码交互调整,避免CSRF隐患。
+- 5、【优化】任务信息、执行日志API完善,避免越权隐患;
 
 备注:“CVE-2024-38820”漏洞源自spring,当前使用spring5.x及springboot2.x软件普遍受该问题影响。
 该问题修复需要升级至spring6.x与springboot3.x,如有诉求可自行升级,计划下个大版本升级spring相关版本解决该问题。

+ 8 - 0
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java

@@ -79,6 +79,10 @@ public class JobInfoController {
 	@RequestMapping("/add")
 	@ResponseBody
 	public ReturnT<String> add(HttpServletRequest request, XxlJobInfo jobInfo) {
+		// valid permission
+		PermissionInterceptor.validJobGroupPermission(request, jobInfo.getJobGroup());
+
+		// opt
 		XxlJobUser loginUser = PermissionInterceptor.getLoginUser(request);
 		return xxlJobService.add(jobInfo, loginUser);
 	}
@@ -86,6 +90,10 @@ public class JobInfoController {
 	@RequestMapping("/update")
 	@ResponseBody
 	public ReturnT<String> update(HttpServletRequest request, XxlJobInfo jobInfo) {
+		// valid permission
+		PermissionInterceptor.validJobGroupPermission(request, jobInfo.getJobGroup());
+
+		// opt
 		XxlJobUser loginUser = PermissionInterceptor.getLoginUser(request);
 		return xxlJobService.update(jobInfo, loginUser);
 	}

+ 4 - 1
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java

@@ -207,8 +207,11 @@ public class JobLogController {
 
 	@RequestMapping("/clearLog")
 	@ResponseBody
-	public ReturnT<String> clearLog(int jobGroup, int jobId, int type){
+	public ReturnT<String> clearLog(HttpServletRequest request, int jobGroup, int jobId, int type){
+		// valid permission
+		PermissionInterceptor.validJobGroupPermission(request, jobGroup);
 
+		// opt
 		Date clearBeforeTime = null;
 		int clearBeforeNum = 0;
 		if (type == 1) {

+ 1 - 1
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/UserController.java → xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobUserController.java

@@ -27,7 +27,7 @@ import java.util.Map;
  */
 @Controller
 @RequestMapping("/user")
-public class UserController {
+public class JobUserController {
 
     @Resource
     private XxlJobUserDao xxlJobUserDao;