Skip to main content

JeecgBoot EUVDEUVD-2026-97044

| CVE-2026-108870 MEDIUM
Missing Authorization (CWE-862)
2026-10-11 VulnCheck GHSA-898h-4prp-w6gp
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as low-privileged user
  2. Delivery
    Send crafted POST to sys/role saveDatarule
  3. Exploit
    Overwrite role data_rule_ids bypassing authorization check
  4. Execution
    Clear row-level data filters
  5. Impact
    Access widened record set

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 session for a low-privileged JeecgBoot account (PR:L) and network reachability to the application's sys/role saveDatarule endpoint; no user interaction and no special non-default configuration are indicated. The attacker must be able to supply permissionId, roleId and dataRuleIds parameters. The principal limiting factor is the authentication requirement - exploitation is impossible for a fully unauthenticated outsider, so risk concentrates on instances that issue low-trust accounts or are exposed to many users; impact is bounded to data-rule/row-level filter manipulation (LOW confidentiality and integrity), not full compromise.

Impact

This is a genuine but moderate-priority authorization flaw, not a critical remote-code issue. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N, 5.3) is internally consistent with the description: network-reachable, low attack complexity, but requiring existing low-privileged authentication (PR:L) and yielding only LOW confidentiality and integrity impact with no availability impact. A public PoC exists (VulnCheck-reported, github-poc reference), which raises practical exploitability above a theoretical finding, but there is NO CISA KEV listing and no EPSS score was supplied, so there is no evidence of active or widespread exploitation - treat the PoC as a capability signal, not an in-the-wild one. The signals are mutually consistent (no conflict between vector and description): all point to a post-authentication horizontal privilege/access-control weakness rather than a pre-auth breach. The real risk is elevated specifically for internet-exposed JeecgBoot instances that grant low-trust user accounts, where an attacker can quietly weaken row-level data filtering; it is lower for instances where all authenticated users are already trusted. No EPSS data was provided, so exploitation-probability modeling is unavailable and this assessment relies on PoC existence plus the CVSS vector.

Exploit ScenarioDerived

A low-privileged but authenticated JeecgBoot user (or an attacker who has phished/obtained any valid low-trust account) sends a crafted POST to the sys/role saveDatarule endpoint supplying permissionId, roleId and dataRuleIds. Because the SysRoleController handler fails to verify the caller's authorization, the request overwrites the data_rule_ids for a targeted role, clearing row-level filters so previously restricted records become readable. A public Python PoC (poc_role_datarule_write.py) demonstrating this request is available.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 11, 2026

An authorization weakness in JeecgBoot through 3.9.5 lets any authenticated low-privileged user overwrite role-level data rules through the SysRoleController saveDatarule handler, clearing row-level filters so records normally hidden from that role become readable, or changing the filtering applied to other roles. Exploitation requires network reachability to the saveDatarule endpoint and a valid low-privileged session (PR:L) with no user interaction, and publicly available exploit code exists in the form of a Python PoC (poc_role_datarule_write.py) that posts permissionId, roleId and dataRuleIds values. Impact is bounded to data-rule and row-level filter manipulation with low confidentiality and integrity loss rather than code execution or administrative takeover, giving a moderate assessed severity (CVSS 3.1 5.3); risk concentrates on deployments that issue low-trust accounts or expose the application to many users.

RemediationAI

No vendor-released patch or exact fixed version is identified in the available data, so remediation must begin with compensating controls on the saveDatarule endpoint (POST sys/role/datarule) until an official fix is confirmed. Server-side enforcement is the correct fix: add an explicit permission check in SysRoleController.saveDatarule so that only callers holding data-rule/role administration privileges may pass permissionId, roleId and dataRuleIds, and reject requests that target roles outside the caller's scope; this closes the root cause but requires a code change and a redeploy. Short-term, restrict the endpoint at the perimeter (reverse proxy, API gateway or WAF) so that only trusted administrative networks or accounts can reach sys/role/*/datarule, accepting that legitimate administrative workflows outside those networks will break. If row-level data rules are not actively used by the deployment, disabling the data-rule feature removes the attack surface entirely, at the cost of losing row-level access segmentation. Audit existing data_rule_ids values for unauthorized or emptied entries and review application logs for POSTs to the saveDatarule handler from low-privileged accounts, since clearing those rows silently widens what a role can read. Track the VulnCheck advisory (https://www.vulncheck.com/advisories/jeecgboot-through-3.9.5-missing-authorization-via-post-sys-role-datarule) and the upstream repository for a patched release, and treat the referenced source file as the location to verify any fix.

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

The affected component is JeecgBoot, a Spring Boot based low-code development platform whose system module exposes SysRoleController in jeecg-module-system. The flaw is classified as CWE-862 (Missing Authorization): the saveDatarule handler referenced in the public source (lines 475-500 of SysRoleController.java) accepts caller-supplied permissionId, roleId and dataRuleIds parameters and persists them into the data_rule_ids field without verifying that the requester actually holds authority to manage data rules for that role. Because JeecgBoot's data rules drive row-level filtering applied to queries (typically translated into SQL predicates through the MyBatis persistence layer), rewriting data_rule_ids effectively widens or narrows the record set visible to a given role, which is why the impact is scoped to confidentiality and integrity of filtered data rather than to the authentication mechanism itself. The provided CPE, cpe:2.3:a:jeecgboot:jeecgboot:*:*:*:*:*:*:*:*, uses a wildcard version and is consistent with the advisory's statement that all releases through 3.9.5 are affected, so no version boundary below 3.9.5 is established by the supplied data. Note that the tag 'Authentication Bypass' is a loose label here; the demonstrated issue is a missing authorization check on an already-authenticated endpoint, not a bypass of authentication.

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 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 5.4 MEDIUM

Network-reachable endpoint with low complexity, but requires an existing low-privileged account (PR:L); impact limited to partial data exposure and filter tampering (C:L/I:L), no availability effect.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/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
Low
Vulnerable system: Integrity
Low
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 SysRoleController saveDatarule handler that allows low-privileged authenticated users to modify role data rules. Attackers can send permissionId, roleId and dataRuleIds to overwrite data_rule_ids, clearing row-level filters to widen readable records or altering filtering for other roles.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Medium
popular open-source Java low-code platform, moderate real-world deployment
Exploit
POC
Public exploit code exists
Social Media
1
Sightings
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 MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Medium

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
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-108648 HIGH POC
7.1 Oct 10

Database credential disclosure in JeecgBoot through 3.9.5 allows any authenticated low-privileged user to retrieve JDBC

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

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