Skip to main content

jshERP EUVDEUVD-2026-97385

| CVE-2026-109181 MEDIUM
Incorrect Authorization (CWE-863)
2026-10-12 disclosure@vulncheck.com GHSA-gm8f-w8c2-frcr
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 restricted jshERP user
  2. Exploit
    Craft GET /depotHead/list with purchaseStatus=0 in search JSON
  3. Execution
    Server drops creator filter in DepotHeadService.select
  4. Impact
    Harvest all tenant purchase/sales/inventory bills

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
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 jshERP session, even one restricted to personal or department-only data scope (PR:L); no admin rights are needed. The attacker must send a GET /depotHead/list request with purchaseStatus=0 added to the search JSON - this specific parameter presence is what causes DepotHeadService.select to omit the creator/owner filter. No non-default configuration or user interaction is required; the behavior is present in default jshERP through 3.6. The sole limiting factor is the need for any low-privilege authenticated account, which bounds exploitation to insiders or attackers who have otherwise obtained credentials.

Impact

This is a genuine but moderate-severity information-disclosure issue, not a top-tier emergency. The provided CVSS 4.0 vector (AV:N/AC:L/PR:L/UI:N/VC:L, score 5.3) is internally consistent with the description: a network-reachable, low-complexity bug that requires an authenticated low-privilege account and leaks confidentiality only (no integrity or availability impact). A public POC exists (publicly available exploit code exists), which raises practical exploitability for anyone who already holds a valid jshERP login. However, there is no CISA KEV listing and no EPSS score provided, so there is no evidence of active or widespread exploitation - the absence of these signals is not itself an error, just missing data. The key tension is that PR:L bounds the audience to existing authenticated tenant users (insiders or attackers who have obtained any low-privilege credential), which argues against mass internet-scale exploitation despite AV:N. One nuance to verify: the description says the filter bypass exposes ALL tenant purchase, sales and inventory bills, which is arguably a broader confidentiality impact than the VC:L / C:L rating suggests - defenders handling sensitive commercial data may wish to treat the confidentiality impact as higher than the headline 5.3 implies. Net: real and worth patching, but lower priority than unauthenticated RCE or KEV-listed flaws.

Exploit ScenarioDerived

An attacker who already has a low-privilege jshERP account scoped to only their own or their department's records logs in, then issues a GET /depotHead/list request with purchaseStatus=0 injected into the search JSON. Because DepotHeadService.select drops the creator filter when purchaseStatus is present, the server returns every purchase, sales and inventory bill for the entire tenant, leaking commercially sensitive data the user should not see. A public Python POC for this exact 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 12, 2026

An authorization bypass in jshERP through 3.6 lets any authenticated user - even one whose data scope is restricted to personal or department-level records - read other users' purchase, sales, and inventory bills by inserting a purchaseStatus=0 value into the search JSON of a GET /depotHead/list request. The presence of that single parameter causes DepotHeadService.select to omit the creator/owner filter, returning tenant-wide depot head records instead of only the caller's own. Publicly available exploit code exists (a VulnCheck-published PoC script), though there is no KEV-listed active exploitation and the assessed CVSS 3.1 score of 5.3 reflects confidentiality-only impact (C:L, I:N, A:N) requiring a low-privilege authenticated session, making this a moderate-severity information-disclosure issue best addressed by insiders or attackers who already hold credentials.

RemediationAI

No vendor-released patch or fixed version was identified at time of analysis; the GitHub references supplied are pointers to the vulnerable source (controller and service lines), not to a fix commit or tagged release, so remediation must currently rely on code-level correction or compensating controls. The definitive fix is to modify DepotHeadService.select so the creator/department scope predicate is always appended regardless of whether purchaseStatus (or any other search key) is present in the caller-supplied JSON, and to validate the search payload against an allowlist of fields rather than trusting arbitrary keys; until that patch is available and deployed, restrict network access to the application to trusted internal users only, since every exploitation path requires a valid low-privilege session and blocking unauthenticated ingress removes the easiest credential-acquisition route. Trade-off: this does nothing against malicious or compromised insiders, which is the primary threat model here. As an interim control, deploy a reverse-proxy or WAF rule that logs or rejects GET /depotHead/list requests whose search parameter contains "purchaseStatus" for non-privileged roles; the trade-off is potential breakage of legitimate purchase-status filtering for those users and possible evasion via JSON encoding or parameter reordering. Finally, audit application logs and database query traces for GET /depotHead/list calls carrying purchaseStatus in the search JSON from accounts whose scope should not permit tenant-wide reads, and treat any such hits as evidence of data-scope enumeration.

Affected VersionsENISA

jshERP 0 ≤3.6

Affected Packages

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

jshERP is a Java/Spring Boot multi-tenant ERP platform (jshERP-boot) handling purchasing, sales, and inventory documents through a DepotHead entity. The vulnerability class is CWE-863 (Incorrect Authorization): the controller endpoint DepotHeadController (lines 77-80 of the referenced commit) forwards a caller-supplied search JSON to DepotHeadService.select (lines 104-125), where the data-scope predicate that constrains results to the caller's own or department's records is conditionally constructed. When the search object contains a purchaseStatus key, the code path taken omits the creator/owner filter entirely, so the query executes with tenant-wide scope. This is a broken object-level/row-level authorization defect rather than a memory-safety or injection flaw - the query itself is valid and the data returned is legitimate data the caller simply is not authorized to see. Exploitation requires PR:L per both the supplied CVSS 4.0 vector and the independent CVSS 3.1 assessment (AV:N/AC:L/PR:L/UI:N), so an unauthenticated attacker cannot trigger it, and no user interaction or non-default configuration is involved.

Know when the next one hits your stack

  • 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:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 4.3 MEDIUM

Network-reachable HTTP endpoint (AV:N), trivial parameter injection (AC:L), requires any authenticated low-privilege account (PR:L), read-only data leak so C:L with I:N/A:N and no scope change.

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

DescriptionCVE.org

jshERP through 3.6 contains an authorization bypass vulnerability that allows authenticated users restricted to personal or department data to list other users' bills by adding a purchaseStatus value. Attackers can include purchaseStatus=0 in the search JSON on GET /depotHead/list, causing DepotHeadService.select to drop the creator filter and expose all tenant purchase, sales and inventory bills.

Threat Intelligence Overview

EPSS Score
0.2%
Top 89% exploitable
Prevalence
Low
niche open-source Chinese ERP, limited enterprise production footprint
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

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