Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged user
-
DeliveryEnumerate other users' prompt/dataset IDs
-
ExploitCall promptExperiment without ownership check
-
ExecutionServer runs LLM evaluation on victim resources
-
ImpactWrite rows to airag_ext_data and alter dataset status
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires a valid authenticated low-privileged account on the target JeecgBoot instance (PR:L), and the JeecgBoot AIRAG/AI-prompts module must be deployed and configured with a working LLM backend for evaluation runs to execute. The attacker must also know or enumerate valid prompt-template and dataset IDs owned by other users, which the promptExperiment handler accepts without any ownership/authorization check. Limiting factors: exploitation is impossible for fully unauthenticated outsiders, is scoped to environments that actually use the AIRAG feature, and impact is restricted to writing rows into airag_ext_data and changing dataset status (integrity) rather than data theft or service outage. |
| Impact | This is a genuine but moderate-priority issue, not a critical one. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) and the 5.3 base score are internally consistent with the description: exploitation is network-reachable and technically simple, but requires an authenticated low-privileged account (PR:L), and impact is confined to integrity (VI:L) with no confidentiality (VC:N) or availability (VA:N) effect. A public exploit exists (VulnCheck advisory plus a GitHub PoC), which raises operational concern, but there is no CISA KEV listing and no EPSS score in the provided data, so there is no evidence of active or widespread exploitation - PoC availability and active exploitation are distinct signals and should not be conflated here. The SSVC-style read is: exploitation = public PoC (not 'active'), technical impact = partial (integrity-only cross-user data manipulation), and the authentication precondition limits automatability against arbitrary targets. One signal worth flagging: the described ability to trigger large-language-model evaluation runs on demand implies a potential resource/cost-abuse angle (compute spend against the configured LLM backend) that the CVSS vector does not capture under availability. Net: a legitimate authorization defect worth patching in affected JeecgBoot deployments, but below the urgency of an unauthenticated RCE or a KEV-listed flaw. |
| Exploit ScenarioDerived | A low-privileged but authenticated JeecgBoot user calls the promptExperiment endpoint of AiragPromptsController and supplies prompt-template and dataset IDs belonging to a different user. Because the handler performs no ownership check, the server runs the AI prompt experiment on the victim's resources, writes attacker-influenced result rows into airag_ext_data, and flips the victim's dataset status. A public proof-of-concept (poc_airag_data_plane.py) demonstrating this request is available. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 10, 2026
Missing authorization in JeecgBoot's AIRAG prompts module (through version 3.9.5) lets any authenticated, low-privileged user invoke the promptExperiment handler in AiragPromptsController and launch AI prompt evaluation runs against prompt templates and datasets that belong to other users. Because the handler performs no ownership or permission check on the supplied prompt-template and dataset IDs, an attacker who can enumerate or guess those identifiers can write result rows into the airag_ext_data table and alter dataset status, an integrity-only impact with no confidentiality or availability loss. Exploitation requires a valid low-privileged account plus an instance where the AIRAG module is deployed with a working LLM backend; publicly available exploit code exists, but there is no confirmed active exploitation (no CISA KEV listing) and the issue is rated moderate rather than critical.
RemediationAI
No vendor-released patch has been identified at time of analysis; the upstream code reference is a source file pointer rather than a tagged fix, so an official fixed JeecgBoot version could not be independently confirmed and administrators should watch the JeecgBoot project and the VulnCheck advisory (https://www.vulncheck.com/advisories/jeecgboot-through-3.9.5-missing-authorization-via-airag-prompts-experiment) for a patched release. The most effective mitigation is to add or enforce an ownership check so that AiragPromptsController.promptExperiment verifies the caller owns the referenced prompt-template and dataset IDs before executing an evaluation run, for example through a custom interceptor or by patching the controller in a local fork; the trade-off is that this requires code maintenance on every upstream upgrade. If the AIRAG feature is not actively used, remove or disable the jeecg-boot-module-airag module entirely, which eliminates the attack surface with the side effect of losing all AI/RAG functionality. Otherwise, restrict the /airag prompts experiment endpoint (and the promptExperiment route) to trusted administrative roles via gateway or reverse-proxy rules and JeecgBoot role permissions, accepting that legitimately authorized experimenters must be granted elevated roles and that ID enumeration by low-privileged accounts is still only blocked, not monitored. Finally, monitor the airag_ext_data table and dataset status transitions for unexpected evaluation runs or unauthorized modifications, which provides detection rather than prevention and will not stop a determined low-privileged insider.
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 flaw is CWE-862 (Missing Authorization) and sits in the Java Spring Boot backend of JeecgBoot, an open-source low-code development platform. The affected code path is the promptExperiment handler in org.jeecg.modules.airag.prompts.controller.AiragPromptsController (referenced upstream at lines 180-183), part of the jeecg-boot-module-airag AI/RAG extension. That module orchestrates large language model prompt-evaluation workflows: it takes a prompt-template identifier and a dataset identifier, then runs the template against the dataset through the configured LLM backend, persisting each evaluation result as a row in the airag_ext_data extension table and updating the associated dataset's status. The missing authorization check means the controller trusts caller-supplied IDs and never verifies that the requesting principal owns or is permitted to use the referenced prompt template or dataset, so a low-privileged authenticated user can operate on resources belonging to other tenants or users. The provided CPE cpe:2.3:a:jeecgboot:jeecgboot:*:*:*:*:*:*:*:* indicates the whole JeecgBoot product line up to 3.9.5 is in scope, and the ecosystem tag 'Authentication Bypass' alongside 'Jeecgboot' reflects that the flaw is fundamentally an access-control, not a memory-safety, defect. Consistent with the authoritative assessment (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N), impact is confined to integrity: attacker actions can pollute AI evaluation data and flip dataset state, but cannot exfiltrate data or cause a denial of service.
Know when Jeecgboot 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:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Network-reachable and simple (AV:N/AC:L), but any authenticated low-privileged user suffices (PR:L); impact is cross-user data modification only, so C:N/I:L/A:N and scope unchanged.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
JeecgBoot through 3.9.5 contains a missing authorization vulnerability in the promptExperiment handler of AiragPromptsController that allows any authenticated user to run AI prompt experiments. Low-privileged attackers can supply other users' prompt template and dataset ids to trigger large language model evaluation runs, write result rows into airag_ext_data, and change dataset status.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Unauthenticated report data exfiltration in JimuReport (JeecgBoot) through version 2.5.0 lets remote attackers export th
Broken access control in JeecgBoot through 3.9.2 lets authenticated low-privilege users reach the OpenApiAuthController
Privilege escalation in JeecgBoot through 3.9.5 lets any authenticated user approve their own pending tenant administrat
Missing authorization in the saveDeptRolePermission endpoint of JeecgBoot's SysDepartPermissionController lets any authe
SQL injection vulnerability in Beijing Guoju Information Technology Co., Ltd JeecgBoot v.3.7.2 allows a remote attacker
JeecgBoot up to v 3.5.1 was discovered to contain a SQL injection vulnerability via the component queryFilterTableDictIn
JeecgBoot up to v 3.5.1 was discovered to contain a SQL injection vulnerability via the component queryTableDictItemsByC
JeecgBoot through 3.9.5 ships a system log controller whose batch-delete handler performs no authorization check, so any
Database credential disclosure in JeecgBoot through 3.9.5 allows any authenticated low-privileged user to retrieve JDBC
Missing authorization in JeecgBoot through 3.9.5 lets any authenticated user enumerate record IDs through the unguarded
Authenticated low-privileged users of JeecgBoot through 3.9.5 can retrieve any other user's stored password ciphertext t
Authenticated users of any privilege level on JeecgBoot through 3.9.5 can rewrite DingTalk, WeCom, or Feishu third-party
EUVD-2026-96609
GHSA-47h3-mmc5-c876
NVD
CVE.org
EPSS
Exploit-DB