CVE-2026-108669 in JeecgBoot
Summary
by MITRE • 10/11/2026
JeecgBoot through 3.9.5 contains a missing authorization vulnerability in the embeddingSearch handler of AiragKnowledgeController that lacks Shiro permission annotations. Low-privileged authenticated attackers can supply knowledge base ids to the GET /airag/knowledge/embedding/search endpoint to read document text chunks from unauthorized knowledge bases.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.
Analysis
by VulDB Data Team • 10/11/2026
The vulnerability identified in JeecgBoot versions up to 3.9.5 represents a critical failure in access control mechanisms within the AiragKnowledgeController component, specifically affecting the embeddingSearch handler. This flaw stems directly from the absence of proper Shiro permission annotations on the method responsible for processing search requests against knowledge bases. In enterprise applications utilizing Apache Shiro for authentication and authorization, it is standard practice to enforce role-based or privilege-based access controls by annotating controller methods with specific security constraints. The omission of these annotations in this particular endpoint means that the framework does not validate whether the currently authenticated user possesses the necessary privileges to interact with the requested resource before executing the logic.
From a technical perspective, the core issue lies in how the application handles input parameters for knowledge base identifiers. When an attacker sends a GET request to the /airag/knowledge/embedding/search endpoint, they can supply arbitrary knowledge base IDs as part of the query payload. Because the server-side validation fails to cross-reference these IDs against the permissions associated with the authenticated user's session, the application proceeds to execute the search operation regardless of ownership or access rights. This allows low-privileged authenticated users to bypass intended restrictions and retrieve sensitive data stored within unauthorized knowledge bases. The vulnerability effectively transforms a standard search function into an information disclosure vector for any valid account on the system.
The operational impact of this missing authorization flaw is significant, particularly in environments where JeecgBoot is used to manage proprietary or confidential documentation through its AI-driven knowledge base features. Attackers who have obtained low-level credentials can enumerate and extract document text chunks from high-security repositories that should remain inaccessible to their level of access. This leads to a direct compromise of data confidentiality, potentially exposing intellectual property, internal policies, customer information, or other sensitive materials depending on the content stored in the knowledge bases. The ability to read these unencrypted text chunks means that even if encryption at rest is employed, the attacker can still exfiltrate plaintext data during retrieval operations.
This vulnerability aligns with CWE-284, which describes Improper Access Control, and more specifically maps to ATT&CK technique T1078, Valid Accounts, as it relies on legitimate but insufficiently privileged credentials to perform unauthorized actions. It also reflects aspects of CWE-639, Authorization Bypass Through User-Controlled Key, since the attacker controls the knowledge base identifier used to determine what data is returned. The lack of server-side authorization checks for resource-specific permissions highlights a common architectural oversight in web applications where developers may assume that authentication alone provides sufficient security boundaries without implementing granular access control lists or object-level permission verification.
To mitigate this vulnerability, immediate remediation should focus on enforcing strict access controls at the application layer. Developers must add appropriate Shiro annotations to the embeddingSearch method within AiragKnowledgeController to ensure that only users with specific roles or permissions can invoke it. Beyond annotation-based fixes, a robust defense-in-depth strategy requires implementing server-side authorization logic that explicitly verifies whether the authenticated user has read access to the specific knowledge base ID provided in the request parameters before returning any data. This involves querying an access control database or checking session attributes against resource ownership records prior to executing the search query. Additionally, regular security code reviews and static application security testing should be employed to detect similar missing authorization patterns across other endpoints within the JeecgBoot ecosystem.