Skip to main content

yshop-crm CVE-2026-109171

| EUVDEUVD-2026-97375 MEDIUM
Missing Authorization (CWE-862)
2026-10-12 disclosure@vulncheck.com GHSA-h7m8-pw8h-m438
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 with any back-office account
  2. Exploit
    Send POST /admin-api/crm/contract/check
  3. Execution
    Approve or reject target contract without approver rights
  4. Impact
    Alter customer deal/purchase data or return products to stock

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 back-office session on yshop-crm (any user, including the lowest-privilege role) because the POST /admin-api/crm/contract/check endpoint in CrmContractController carries no @PreAuthorize annotation and its approver-identity checks are commented out, so no specific role, feature flag, or non-default configuration is needed - the weakness is present in the shipped default code through version 2.1.3. The only limiting factor is that the attacker must first possess or obtain back-office credentials (PR:L); it is not exploitable by fully unauthenticated remote attackers, and impact is confined to contract approval/rejection state and the downstream deal/stock data it affects.

Impact

This is a medium-severity authorization flaw (CWE-862) whose signals are internally consistent and point to a real but bounded risk. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) shows a network-reachable, low-complexity attack requiring low privileges and no user interaction, and the impact is deliberately narrow: VI:L only, with VC:N and VA:N - i.e. a limited integrity impact and no confidentiality or availability loss. The key gating factor is PR:L: exploitation requires any valid authenticated back-office account, so this is an insider / post-compromise privilege-boundary issue, not a pre-auth internet-facing RCE. Public exploit code exists (a Python POC), which raises practical exploitability, but there is NO CISA KEV listing and NO EPSS score was provided in the input, so there is no evidence of active or widespread exploitation. The reporter is VulnCheck (disclosure@vulncheck.com), a credible source, and the POC plus annotated source links corroborate the technical claim. Net assessment: a legitimate access-control bug worth patching, but not an emergency - its real-world priority is moderated by the authentication requirement, the limited (integrity-only, low) impact, and the niche footprint of the affected product. EPSS and KEV data are absent rather than conflicting; do not treat the public POC as evidence of in-the-wild exploitation.

Exploit ScenarioDerived

A low-privileged employee (or an attacker who has phished/obtained any back-office login) sends a single crafted POST request to /admin-api/crm/contract/check and approves or rejects CRM contracts they were never authorized to act on, tampering with customer deal/purchase records or forcing products back into stock. Because the endpoint has no @PreAuthorize annotation and the approver check is commented out, the server accepts the action from any authenticated session. A public Python POC (poc_crm_contract_check.py) automates this, and the low attack complexity means no special timing or conditions are needed.

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

Any authenticated back-office user of yshop-crm (through 2.1.3) can approve or reject customer contracts without holding approver privileges, because the CrmContractController endpoint POST /admin-api/crm/contract/check ships with no @PreAuthorize annotation and its approver-identity checks commented out. Approving a contract silently mutates downstream deal and purchase data, while rejecting one returns goods to stock - an integrity-only impact with no disclosed confidentiality or availability loss. Publicly available exploit code exists (a PoC script in the cve-request-poc repository), but there is no evidence of confirmed active exploitation; the attack still requires a valid low-privilege back-office session.

RemediationAI

No vendor-released patch or fixed version was identified at time of analysis, so remediation is currently code-level and compensating-control based. Primary fix: in a maintained fork, add an explicit @PreAuthorize("hasAuthority('crm:contract:check')") (or an equivalent role/authority expression) to the check method in CrmContractController and re-enable the commented-out approver-identity validation in CrmContractServiceImpl so the acting user must be the designated approver - then rebuild and redeploy; note that this changes behavior for integrators relying on the permissive path. Where code changes are not feasible, block or rate-limit POST /admin-api/crm/contract/check at the reverse proxy/WAF for every account except the approver role, accepting the trade-off that legitimate approvals must be routed through a compensating manual process while the rule is in place. Additionally reduce the attack surface by auditing and removing unnecessary back-office accounts (PR:L is the only barrier to exploitation), enforcing MFA and credential rotation on remaining administrative users, and alerting on contract status transitions and inventory-return events originating from non-approver accounts, since such events are the observable evidence of abuse. Public proof-of-concept code is available at https://github.com/AnkesKasty/cve-request-poc/blob/a7b6d1423555812d8efa26c91c5d0683164b31e5/yshop-crm/poc_crm_contract_check.py, which can be used to validate detection rules and confirm whether the fix is effective.

Affected VersionsENISA

yshop-crm 0 ≤2.1.3

Affected Packages

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

yshop-crm is a self-hosted Java/Spring Boot customer-relationship-management application (package root co.yixiang.yshop.module.crm) that exposes administrative functionality under an /admin-api prefix and persists data through a MySQL schema. The flaw is CWE-862 (Missing Authorization): the contract state-transition handler in CrmContractController (lines ~100-106 of the referenced source file) neither carries a Spring Security @PreAuthorize method annotation nor invokes the approver-identity checks, which are present only as commented-out code, so the request is processed for any principal that passes the generic back-office authentication filter. The downstream business logic in CrmContractServiceImpl (lines ~315-432) then executes the approval or rejection transition, altering contract status and cascading into deal/purchase records and inventory returns. This is a classic broken-function-level-authorization pattern - authentication is enforced but the authorization decision for a sensitive state-changing action was never wired up - and it is distinct from CWE-306 (missing authentication) or CWE-863 (incorrect authorization), since the endpoint is reachable only by logged-in users. The independent assessment rates this CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N (the upstream CVSS 4.0 score is 5.3), consistent with a network-reachable, low-privilege, low-integrity-impact issue confined to the application's own scope.

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

Any authenticated back-office user (PR:L) can call the unprotected endpoint over the network with no UI or special complexity; impact is limited integrity tampering (I:L) with no confidentiality or availability loss.

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

DescriptionCVE.org

yshop-crm through 2.1.3 contains a missing authorization vulnerability that allows any authenticated back-office user to approve or reject contracts by calling POST /admin-api/crm/contract/check. Because CrmContractController lacks @PreAuthorize and approver checks are commented out, attackers can approve contracts to alter customer deal and purchase data or reject them to return products to stock.

Threat Intelligence Overview

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Low
niche open-source Chinese CRM/e-commerce platform, limited enterprise 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

Attack Technique

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

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