Skip to main content

XXL-JOB CVE-2026-106707

| EUVDEUVD-2026-102257 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-15 mitre GHSA-pvq6-cwrf-p6rh
5.4
CVSS 3.1 · Vendor: mitre
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with job-group trigger permission
  2. Delivery
    Submit POST /jobinfo/trigger with scripted executorParam
  3. Exploit
    Payload stored in job log
  4. Execution
    Admin opens /joblog list page
  5. Persist
    Script executes in victim browser session
  6. Impact
    Hijack session or act as operator

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an authenticated XXL-JOB account that holds trigger permission on a target executor job group (per CVSS PR:L); it is not available to anonymous or unprivileged users. The attacker injects JavaScript through the executorParam argument of the manual-trigger endpoint POST /jobinfo/trigger, and the payload only fires when a victim user loads the /joblog job log list page (UI:R) - so a second, typically higher-privileged operator/admin must actually view that page for impact to occur. Limiting factors: prior valid credentials with the specific group permission, required victim interaction (viewing the log page), and applicability only to XXL-JOB builds at or below 3.5.0-SNAPSHOT. Internet-exposed or multi-tenant admin consoles raise realistic risk; isolated single-operator deployments lower it.

Impact

This is a moderate-severity, authenticated stored XSS (CVSS 5.4) that should be treated as a real but second-tier priority rather than an urgent, drop-everything issue. The CVSS vector (CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N) tells a consistent story: network-reachable and low-complexity, but gated by authentication (PR:L) and requiring a victim to view the malicious job-log page (UI:R), with scope change (S:C) reflecting that the injected script executes in another user's browser/session. Impact is limited (C:L/I:L, A:N) - session/credential theft or UI-level action forgery against an operator, not direct server compromise. No EPSS score, no CISA KEV listing, and no SSVC decision data were provided, and no public exploit code is referenced, so there is no evidence of active exploitation - the two references are only the upstream project repo and a CVE-request writeup. The main caveat: an attacker already needs an authenticated account with trigger permission on an executor job group, which meaningfully narrows the threat to insiders or attackers who have already obtained valid low-privilege credentials, and the most valuable victim (an admin reviewing logs) must actually open the affected page. Treat as a privilege-escalation-flavored XSS against operators; patch in normal cycle, prioritize if XXL-JOB consoles are internet-exposed or shared across trust boundaries.

Exploit ScenarioDerived

A low-privileged but authenticated XXL-JOB user who holds trigger permission on an executor job group submits POST /jobinfo/trigger with a malicious JavaScript payload in the executorParam field. The payload is stored and later rendered when an administrator or another operator opens the /joblog job-log list page, executing in their session to steal cookies or perform actions as that higher-privileged user. No public proof-of-concept is referenced, so exploitation would require an attacker to craft the payload themselves.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 15, 2026

Stored cross-site scripting in XXL-JOB through 3.5.0-SNAPSHOT allows an authenticated user who holds trigger permission on a target executor job group to inject arbitrary JavaScript via the executorParam argument of the manual-trigger endpoint POST /jobinfo/trigger; the payload is persisted and executes when another user loads the /joblog job log list page (CVSS 3.1: 5.4, AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N). Because the vector specifies PR:L, the attacker must already hold a valid XXL-JOB account with the relevant group permission, and because it specifies UI:R, a second user must open the poisoned log page before any script runs, so exploitation is a two-party, permission-gated scenario rather than an anonymous drive-by. No public exploit code has been identified at time of analysis and the CVE is not listed as confirmed actively exploited (CISA KEV); no EPSS score was supplied with the available data, so the practical risk is driven mainly by whether the admin console is internet-exposed or multi-tenant, where log-viewing by higher-privileged operators is routine.

RemediationAI

No vendor-released patch version is identified in the available data, so the first step is to check the upstream project at https://github.com/xuxueli/xxl-job for a fixed release and upgrade beyond 3.5.0-SNAPSHOT as soon as a version newer than the affected range is published; until then, treat the deployment as unpatched. Because the issue is stored XSS rendered from executorParam into the /joblog page, the most direct compensating control is to stop rendering untrusted values as raw HTML - apply HTML entity encoding to executorParam (and any other user-supplied fields) at log-render time, either via an upstream patch or a local template change, with the trade-off that log output may display escaped characters and existing stored payloads remain in the database until the affected job log records are purged. Restrict and audit who holds trigger permission on executor job groups, since the vector requires an authenticated account with that specific permission (PR:L); removing trigger rights from non-essential or lower-trust accounts eliminates the injection path and only costs operational convenience for those users. Limit network exposure of the XXL-JOB admin console (place /joblog and /jobinfo behind an authenticated reverse proxy, VPN, or allowlist, never directly on the internet), which blocks the delivery of the payload to a browsing operator but does not fix the underlying storage flaw. Additionally, search existing job log records for injected markup and delete or sanitize suspicious entries, since stored payloads survive re-deployment and will fire again on each page view. References: https://github.com/xuxueli/xxl-job and https://github.com/tao0845/CVE-Request/blob/main/CVE-2026-106707.md.

Affected VersionsENISA

n/a n/a

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

XXL-JOB is a distributed Java task-scheduling platform whose web admin console exposes job-group management, manual trigger actions, and a job log browser. The manual-trigger endpoint POST /jobinfo/trigger accepts an executorParam value that is passed to the executor and then written into the job log record; that stored value is subsequently rendered unsanitized into the HTML of the /joblog list page, so the injected markup is persisted server-side and executed in the browser of whoever views the log. This is the classic persistent (stored) XSS root-cause class - improper neutralization of user-controllable input during web-page generation, i.e. CWE-79 - and the assessed CVSS scope value S:C reflects that the injected script runs in the security context of the XXL-JOB console origin and can therefore act on behalf of the viewing operator, whose role may be broader than the injecting account's. The CPE data supplied with the report is the generic n/a:n/a placeholder and does not enumerate a versioned product entry, so product identification rests on the description, which pins the affected builds at XXL-JOB 3.5.0-SNAPSHOT and earlier; the low confidentiality and integrity ratings (C:L/I:L) and absence of an availability impact (A:N) are consistent with script execution constrained to the browser session rather than server-side code execution or data destruction.

Know when Xxl Job gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (mitre) PRIMARY 5.4 MEDIUM
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
vuln.today AI 5.4 MEDIUM

Network-reachable endpoint and low complexity, but an authenticated low-priv account is required (PR:L) and a victim must view the log page (UI:R); stored XSS crosses into the victim's context (S:C) with limited C/I and no availability impact.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (mitre).

CVSS VectorVendor: mitre

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

DescriptionCVE.org

XXL-JOB <=3.5.0-SNAPSHOT contains a stored Cross-Site Scripting (XSS) vulnerability in the job log list page (/joblog). An authenticated user who holds permission on a target executor job group can inject arbitrary JavaScript via the executorParam argument of the manual-trigger endpoint POST /jobinfo/trigger.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Medium
popular open-source distributed task scheduler, common in enterprise/Java deployments
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

27
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +27
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2024-3366 CRITICAL POC
9.8 Apr 06

A vulnerability classified as problematic was found in Xuxueli xxl-job up to 2.4.1. Rated critical severity (CVSS 9.8),

CVE-2022-40929 CRITICAL POC
9.8 Sep 28

XXL-JOB 2.2.0 has a Command execution vulnerability in background tasks. Rated critical severity (CVSS 9.8), this vulner

CVE-2023-33779 HIGH POC
8.8 May 26

A lateral privilege escalation vulnerability in XXL-Job v2.4.1 allows users to execute arbitrary commands on another use

CVE-2024-42681 HIGH POC
8.8 Aug 15

Insecure Permissions vulnerability in xxl-job v.2.4.1 allows a remote attacker to execute arbitrary code via the Sub-Tas

CVE-2024-24113 HIGH POC
8.8 Feb 08

xxl-job =< 2.4.1 has a Server-Side Request Forgery (SSRF) vulnerability, which causes low-privileged users to control ex

CVE-2023-48089 HIGH POC
8.8 Nov 15

xxl-job-admin 2.4.0 is vulnerable to Remote Code Execution (RCE) via /xxl-job-admin/jobcode/save. Rated high severity (C

CVE-2022-43183 HIGH POC
8.8 Nov 17

XXL-Job before v2.3.1 contains a Server-Side Request Forgery (SSRF) via the component /admin/controller/JobLogController

CVE-2022-29002 HIGH POC
8.8 May 23

A Cross-Site Request Forgery (CSRF) in XXL-Job v2.3.0 allows attackers to arbitrarily create administrator accounts via

CVE-2023-27087 HIGH POC
7.5 Mar 21

Permissions vulnerabiltiy found in Xuxueli xxl-job v2.2.0, v 2.3.0 and v.2.3.1 allows attacker to obtain sensitive infor

CVE-2023-0674 MEDIUM POC
6.5 Feb 04

A vulnerability, which was classified as problematic, has been found in XXL-JOB 2.3.1. Rated medium severity (CVSS 6.5),

CVE-2023-26120 MEDIUM POC
6.1 Apr 10

This affects all versions of the package com.xuxueli:xxl-job. Rated medium severity (CVSS 6.1), this vulnerability is re

CVE-2020-29204 MEDIUM POC
6.1 Dec 27

XXL-JOB 2.2.0 allows Stored XSS (in Add User) to bypass the 20-character limit via xxl-job-admin/src/main/java/com/xxl/j

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy