Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify exposed AJ-Report instance
-
DeliveryForge Share-Token using hard-coded JWT secret
-
ExploitCall testTransform with reportCode 'dataSet'
-
ExecutionSubmit script to GroovyClassLoader
-
ImpactExecute arbitrary code on server
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Key management, no hard-coded keys
|
| Exploitation Conditions | Exploitation requires only that the target runs AJ-Report at or below version 1.7.1 and is network-reachable; no authentication, credentials, or user interaction are needed because the JWT signing secret is hard-coded in JwtUtil.java and therefore identical across all installations, letting the attacker forge Share-Tokens offline. The specific prerequisites are: the ability to reach the HTTP interface, a forged Share-Token whose reportCode is set to 'dataSet', and reachability of the testTransform endpoint, which hands script content to GroovyClassLoader. The main limiting factor is network exposure - an instance restricted to an internal/trusted network is only reachable by attackers with that access - and the version ceiling (≤1.7.1); no fixed version is stated in the available sources, so the only confirmed exposure boundary is the affected-version range. |
| Impact | This is a genuine high-priority issue, not a CVSS-inflated one. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N with VC:H/VI:H/VA:H) describes network-reachable, low-complexity, unauthenticated exploitation with full impact to confidentiality, integrity and availability, and this is coherent with the described mechanism: a hard-coded JWT secret (CWE-321) lets an attacker forge valid Share-Tokens entirely offline, bypass authentication, and reach a Groovy-backed endpoint for remote code execution. The vuln.today decision label is 'act_now', which aligns with the unauthenticated-RCE profile and the fact that the flaw was reported by VulnCheck with a dedicated advisory. No EPSS score, no CISA KEV listing, and no confirmed public exploit-code signal are present in the supplied data, so exploitation-probability and in-the-wild signals cannot be corroborated here; the urgency therefore rests on the intrinsic severity and the detailed public description of the mechanism rather than on observed exploitation. Because the secret is hard-coded in the source (JwtUtil.java is referenced directly), every unpatched deployment shares the same forgeable key, which makes the barrier to weaponization very low once the secret value is known. |
| Exploit ScenarioDerived | An attacker locates an internet-exposed AJ-Report instance (version ≤1.7.1), uses the hard-coded JWT secret to mint a valid Share-Token carrying reportCode 'dataSet', and submits it to the testTransform endpoint. Because testTransform passes attacker-supplied script content to GroovyClassLoader, the attacker achieves unauthenticated remote code execution on the server with no user interaction. No confirmed working exploit code is identified in the supplied data, though VulnCheck's advisory and the Gitee issue document the technique. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 31, 2026
Unauthenticated remote code execution affects AJ-Report through version 1.7.1 because Share-Tokens are signed with a hard-coded JWT secret that is identical across installations. An attacker can forge a token offline, set reportCode to 'dataSet', and reach the testTransform endpoint, which passes supplied script content to GroovyClassLoader. The issue is rated act_now by vuln.today and carries a CVSS 4.0 score of 9.3; no KEV designation or confirmed public exploit code is present in the supplied data, and no public exploit was identified at time of analysis.
RemediationAI
No vendor-released patch is identified in the supplied sources; AJ-Report through 1.7.1 remains the confirmed affected range, so upgrade only when a fixed release is available and verified. Until then, restrict the AJ-Report HTTP interface to trusted networks and block untrusted access to the testTransform endpoint at a reverse proxy or WAF if that function is not required, accepting that this will break legitimate dataset transformation/test functionality. Because the JWT secret is hard-coded in JwtUtil.java, a source-level rebuild that replaces it with a unique per-deployment secret is a compensating workaround rather than a vendor patch; it requires code ownership, rebuild, and validation, and it does not address any other flaws in the affected release. Monitor for forged Share-Tokens with reportCode 'dataSet' and review the VulnCheck advisory at https://www.vulncheck.com/advisories/aj-report-through-1.7.1-authentication-bypass-leading-to-rce-via-share-token plus the Gitee issue and source references for vendor updates.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-321, use of a hard-coded cryptographic key. JwtUtil.java in the report-core module signs Share-Tokens with a static secret, so the signing key does not vary between deployments. An attacker who obtains or knows that key can mint valid Share-Tokens offline without authentication or user interaction. A forged token whose reportCode is set to 'dataSet' grants access to the testTransform endpoint, which hands script content to GroovyClassLoader and can therefore execute attacker-supplied code in the AJ-Report process context. The supplied CPE is cpe:2.3:a:anji-plus:aj-report:*:*:*:*:*:*:*:* with a wildcard version; the advisory description and the referenced V1.7.1 JwtUtil.java bound the affected range to AJ-Report through 1.7.1. Beyond network reachability and the affected version range, the trigger is described as a forged Share-Token sent to testTransform; the available sources do not document additional preconditions.
Know when Aj Report 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Hard-coded secret enables offline token forgery, so remote unauthenticated (AV:N/AC:L/PR:N/UI:N); Groovy-based RCE yields full C/I/A within the application (S:U).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
AJ-Report through 1.7.1 signs share tokens with a hard-coded JWT secret, allowing attackers to forge valid Share-Tokens offline. Attackers can mint a token with reportCode 'dataSet' to access the testTransform endpoint, which passes scripts to GroovyClassLoader for unauthenticated remote code execution.
Executive ViewAI
CVE-2026-120209 is a critical unauthenticated remote code execution flaw in AJ-Report (all versions through 1.7.1) that allows an attacker to forge authentication tokens due to a shared hard-coded secret and execute arbitrary code. This puts any organization with an internet-exposed AJ-Report instance at immediate risk, as no patch is available; leadership should treat this as a potentially severe operational and data security threat until mitigation is possible.
No vendor-released patch identified at time of analysis. Interim mitigations include isolating the application from untrusted networks, restricting access to the testTransform endpoint, and rotating the hard-coded JWT secret if possible. Apply vendor patch when available.
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
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
anji-plus AJ-Report 0.9.8.6 allows remote attackers to bypass login authentication by spoofing JWT Tokens. Rated high se
A vulnerability, which was classified as critical, was found in anji-plus AJ-Report up to 1.4.1. Rated medium severity (
A vulnerability, which was classified as critical, has been found in anji-plus AJ-Report up to 1.4.1. Rated medium sever
A vulnerability classified as problematic was found in anji-plus AJ-Report up to 1.4.1. Rated medium severity (CVSS 5.3)
A vulnerability classified as critical has been found in anji-plus AJ-Report up to 1.4.1. Rated medium severity (CVSS 5.
A vulnerability was found in anji-plus AJ-Report up to 1.4.1. Rated medium severity (CVSS 5.3), this vulnerability is re
A vulnerability was found in anji-plus AJ-Report up to 1.4.1. Rated medium severity (CVSS 5.3), this vulnerability is re
A vulnerability was found in anji-plus AJ-Report up to 1.4.1. Rated medium severity (CVSS 5.3), this vulnerability is re
EUVD-2026-114730
GHSA-p83w-vf54-73v4
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB