Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with job-group trigger permission
-
DeliverySubmit POST /jobinfo/trigger with scripted executorParam
-
ExploitPayload stored in job log
-
ExecutionAdmin opens /joblog list page
-
PersistScript executes in victim browser session
-
ImpactHijack 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
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.
Primary rating from Vendor (mitre).
CVSS VectorVendor: mitre
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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
A vulnerability classified as problematic was found in Xuxueli xxl-job up to 2.4.1. Rated critical severity (CVSS 9.8),
XXL-JOB 2.2.0 has a Command execution vulnerability in background tasks. Rated critical severity (CVSS 9.8), this vulner
A lateral privilege escalation vulnerability in XXL-Job v2.4.1 allows users to execute arbitrary commands on another use
Insecure Permissions vulnerability in xxl-job v.2.4.1 allows a remote attacker to execute arbitrary code via the Sub-Tas
xxl-job =< 2.4.1 has a Server-Side Request Forgery (SSRF) vulnerability, which causes low-privileged users to control ex
xxl-job-admin 2.4.0 is vulnerable to Remote Code Execution (RCE) via /xxl-job-admin/jobcode/save. Rated high severity (C
XXL-Job before v2.3.1 contains a Server-Side Request Forgery (SSRF) via the component /admin/controller/JobLogController
A Cross-Site Request Forgery (CSRF) in XXL-Job v2.3.0 allows attackers to arbitrarily create administrator accounts via
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
A vulnerability, which was classified as problematic, has been found in XXL-JOB 2.3.1. Rated medium severity (CVSS 6.5),
This affects all versions of the package com.xuxueli:xxl-job. Rated medium severity (CVSS 6.1), this vulnerability is re
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
EUVD-2026-102257
GHSA-pvq6-cwrf-p6rh
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB