Skip to main content

JeecgBoot CVE-2026-108648

| EUVDEUVD-2026-96587 HIGH
Missing Authorization (CWE-862)
2026-10-10 VulnCheck GHSA-xqq5-rxcj-4fmx
7.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Obtain low-privileged JeecgBoot account
  2. Delivery
    Enumerate datasource codes (dbSourceCode)
  3. Exploit
    Call getDynamicDbSourceByCode endpoint
  4. Execution
    Retrieve cleartext DB credentials
  5. Impact
    Connect to backend database directly

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

The attacker must hold a valid low-privileged authenticated JeecgBoot session (PR:L) - exploitation is NOT possible unauthenticated. Given that, the specific prerequisite is reaching the GET /sys/api/getDynamicDbSourceByCode endpoint of SystemApiController, which lacks Shiro permission/role annotations, and supplying a valid datasource code in the dbSourceCode parameter; the target JeecgBoot instance (through 3.9.5) must have dynamic datasources configured so that credentials exist to be returned. No user interaction, no special non-default feature toggle, and no elevated role are required beyond basic authentication. The practical limiting factors are: (1) acquiring any application account, and (2) knowing or enumerating valid dbSourceCode values; the decrypted-password disclosure is the designed behavior of the endpoint once reached.

Impact

This is a credible, actionable priority rather than a CVSS-inflated paper risk, though it sits in the moderate band. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N) describes a network-reachable, low-complexity attack requiring only low-privilege authentication, with high confidentiality impact and no integrity or availability impact - consistent with CWE-862 missing authorization leaking secrets. Reinforcing signals: a public PoC exists (AnkesKasty cve-request-poc) and the finding comes from a credible research source (VulnCheck), which lowers the barrier to opportunistic exploitation by anyone who already holds any valid account. Tempering signals: exploitation is NOT unauthenticated (PR:L), so an attacker must first obtain a low-privileged JeecgBoot credential, and the direct impact is confidentiality-only. No EPSS score was provided in the input and the CVE is NOT on CISA KEV, so there is no evidence of active or widespread in-the-wild exploitation at time of analysis - the risk is driven by PoC availability plus the high value of the leaked asset (cleartext database credentials), not by observed campaigns. Net: treat as a near-term patch priority for any multi-tenant or internet-exposed JeecgBoot instance, because the leaked DB passwords enable serious downstream lateral movement even though the base CVE scores the disclosure only.

Exploit ScenarioDerived

An attacker who holds or registers any low-privileged JeecgBoot account sends a simple authenticated GET request to /sys/api/getDynamicDbSourceByCode with a guessed or enumerated dbSourceCode value, and the endpoint - missing Shiro permission/role annotations - returns the datasource's JDBC URL, username, and decrypted cleartext database password. A public proof-of-concept (poc_sys_api_credential_family.py) already automates this, so exploitation requires no custom development. The recovered credentials can then be used to connect directly to backend databases outside the application.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
1 public PoC No patch listed yet 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 10, 2026

Database credential disclosure in JeecgBoot through 3.9.5 allows any authenticated low-privileged user to retrieve JDBC connection URLs, database usernames, and decrypted cleartext database passwords from the GET /sys/api/getDynamicDbSourceByCode endpoint of SystemApiController. The handler carries no Shiro permission or role annotations, so a basic application account is sufficient; the only practical hurdles are obtaining any valid session and knowing or enumerating a valid dbSourceCode value, and exposure requires that dynamic datasources be configured on the instance. Publicly available exploit code exists, and the impact is confidentiality-only (CVSS 3.1 6.5 / CVSS 4.0 7.1, PR:L), with no evidence of confirmed active exploitation at time of analysis.

RemediationAI

No vendor-released patch was identified at time of analysis; a publicly available proof-of-concept exploit exists (https://github.com/AnkesKasty/cve-request-poc/blob/a7b6d1423555812d8efa26c91c5d0683164b31e5/JeecgBoot/poc_sys_api_credential_family.py), so treat remediation as compensating controls until JeecgBoot ships a fixed release above 3.9.5 and monitor the VulnCheck advisory (https://www.vulncheck.com/advisories/jeecgboot-through-3.9.5-missing-authorization-via-getdynamicdbsourcebycode-endpoint) for an updated version. The most direct control is to add Shiro @RequiresPermissions/@RequiresRoles annotations to the getDynamicDbSourceByCode handler (or an equivalent explicit rule in the Shiro filter chain, e.g. /sys/api/** = authc,roles[admin]) so that only administrative principals can reach it - verify the change against your Shiro configuration first, since an over-broad path rule can break other legitimate system API integrations. If the endpoint is not used by your deployment, block it at the reverse proxy/WAF or remove the controller mapping outright; the trade-off is that any internal automation relying on dynamic-datasource introspection will fail. Because cleartext credentials are the payload, also rotate the passwords for every datasource registered in JeecgBoot and re-encrypt the stored datasource configuration, review database and application logs for prior calls to /sys/api/getDynamicDbSourceByCode, and apply least-privilege grants to the exposed database accounts so that leaked credentials reach only what they need. Finally, restrict who can obtain even a low-privileged JeecgBoot account (disable self-registration, enforce MFA) and add alerting on dbSourceCode enumeration, since PR:L is the only real barrier to exploitation.

Affected VersionsENISA

JeecgBoot 0 ≤3.9.5

Affected Packages

euvd jeecgboot 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

JeecgBoot is a Spring Boot-based low-code development platform that relies on Apache Shiro for authentication and authorization. The affected code is SystemApiController#getDynamicDbSourceByCode, referenced in the vendor repository at jeecg-boot/jeecg-module-system/jeecg-system-biz/.../api/controller/SystemApiController.java lines 358-361, which is mapped to GET /sys/api/getDynamicDbSourceByCode. The method accepts a dbSourceCode parameter, resolves the matching dynamic datasource configuration, and returns its connection details - including the database password after the platform's configuration-encryption routine decrypts it back to cleartext. Because the method is missing Shiro's @RequiresPermissions/@RequiresRoles annotations (and no equivalent filter-chain rule covers the path), authorization is never evaluated beyond the base authenticated-session check, which is the CWE-862 missing authorization root cause. The CPE cpe:2.3:a:jeecgboot:jeecgboot:*:*:*:*:*:*:*:* with the description's 'through 3.9.5' bound indicates all released versions up to and including 3.9.5 are affected; the vulnerability is an authorization-gap flaw in the platform's own administrative API surface rather than a memory-safety or injection defect.

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

Vendor (VulnCheck) PRIMARY 7.1 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 6.5 MEDIUM

Network-reachable endpoint needing only a basic authenticated account (PR:L, AC:L); discloses cleartext credentials so C:H, with no integrity or availability impact and no base-scope change.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/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
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

JeecgBoot through 3.9.5 contains a missing authorization vulnerability in the GET /sys/api/getDynamicDbSourceByCode endpoint of SystemApiController, which lacks Shiro permission or role annotations. Any authenticated low-privileged user can supply datasource codes in the dbSourceCode parameter to retrieve JDBC URLs, usernames and decrypted cleartext database passwords.

Technical POC Analysis

CWE-862 (Missing Authorization).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Latest POC

1 public PoC link from github

Sign in to open the public PoC links collected for this CVE.

Executive ViewAI

Why It Matters

JeecgBoot deployments through version 3.9.5 can disclose database connection details and cleartext passwords to any authenticated low-privileged user when dynamic datasources are configured, creating a priority credential-exposure risk for organizations running affected instances. Publicly available exploit code exists, and there is no vendor-released patch identified at time of analysis, so leadership should prioritize containment and credential rotation, especially for internet-facing or sensitive-data environments. Although the vulnerability is confidentiality-only, leaked database credentials could enable follow-on access to connected systems and should be treated as a potential precursor to broader compromise.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include restricting or blocking GET /sys/api/getDynamicDbSourceByCode to trusted administrative networks, disabling dynamic datasource functionality where not required, rotating all database credentials referenced by JeecgBoot dynamic datasources, enforcing least privilege for authenticated application accounts, using WAF/reverse proxy virtual patching, and monitoring for dbSourceCode enumeration or unusual access to the SystemApiController endpoint.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Medium
popular open-source low-code platform, common but not universal enterprise footprint
Data Quality
5 sources
Confidence: Medium

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 HIGH
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
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· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

56
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2026-58375 HIGH POC
8.7 Jun 30

Unauthenticated report data exfiltration in JimuReport (JeecgBoot) through version 2.5.0 lets remote attackers export th

CVE-2026-58377 HIGH POC
8.6 Jun 30

Broken access control in JeecgBoot through 3.9.2 lets authenticated low-privilege users reach the OpenApiAuthController

CVE-2026-108657 HIGH POC
8.6 Oct 10

Privilege escalation in JeecgBoot through 3.9.5 lets any authenticated user approve their own pending tenant administrat

CVE-2026-108628 HIGH POC
8.6 Oct 10

Missing authorization in the saveDeptRolePermission endpoint of JeecgBoot's SysDepartPermissionController lets any authe

CVE-2024-57606 HIGH POC
7.5 Feb 07

SQL injection vulnerability in Beijing Guoju Information Technology Co., Ltd JeecgBoot v.3.7.2 allows a remote attacker

CVE-2023-34603 HIGH POC
7.5 Jun 19

JeecgBoot up to v 3.5.1 was discovered to contain a SQL injection vulnerability via the component queryFilterTableDictIn

CVE-2023-34602 HIGH POC
7.5 Jun 19

JeecgBoot up to v 3.5.1 was discovered to contain a SQL injection vulnerability via the component queryTableDictItemsByC

CVE-2026-108623 HIGH POC
7.1 Oct 10

JeecgBoot through 3.9.5 ships a system log controller whose batch-delete handler performs no authorization check, so any

CVE-2026-108671 HIGH POC
7.1 Oct 10

Missing authorization in JeecgBoot through 3.9.5 lets any authenticated user enumerate record IDs through the unguarded

CVE-2026-108677 HIGH POC
7.1 Oct 10

Authenticated low-privileged users of JeecgBoot through 3.9.5 can retrieve any other user's stored password ciphertext t

CVE-2026-108883 HIGH POC
7.1 Oct 11

Authenticated users of any privilege level on JeecgBoot through 3.9.5 can rewrite DingTalk, WeCom, or Feishu third-party

CVE-2026-108661 HIGH POC
7.1 Oct 10

Tenant ownership takeover in JeecgBoot through 3.9.5 lets any authenticated user - regardless of privilege level - reass

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