Skip to main content

AJ-Report EUVDEUVD-2026-114730

| CVE-2026-120209 CRITICAL
Use of Hard-coded Cryptographic Key (CWE-321)
2026-10-31 VulnCheck GHSA-p83w-vf54-73v4
9.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Identify exposed AJ-Report instance
  2. Delivery
    Forge Share-Token using hard-coded JWT secret
  3. Exploit
    Call testTransform with reportCode 'dataSet'
  4. Execution
    Submit script to GroovyClassLoader
  5. Impact
    Execute 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.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
No patch listed yet 0.5% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – 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

AJ-Report 0 ≤1.7.1

Affected Packages

euvd aj_report no fix

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

Vendor (VulnCheck) PRIMARY 9.3 CRITICAL
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
vuln.today AI 9.8 CRITICAL

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).

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.5%
Top 54% exploitable
Prevalence
Low
niche open-source Java reporting/BI tool, limited global enterprise footprint
Social Media
4
Sightings
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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.5%
Patch available No
Active threat No
Deciding rule
CRITICAL severity
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Total

Priority Score

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

Attack Technique

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

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