CVE-2026-109171
4.3MediumPublished 12 Oct 2026 · NVD status: Deferred · AI triage by gemini-3.8-flash
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
- Impact
- Limited impact
- Weakness
- CWE-862
Impact
Any low-privileged back-office user can approve or reject arbitrary contracts, modifying deal states and returning inventory to stock. The attacker only needs valid login credentials for the admin portal.
Root cause
The POST /admin-api/crm/contract/check endpoint in CrmContractController lacks the @PreAuthorize annotation and has commented-out approver verification checks.
Affected systems
yshop-crm through 2.1.3
CVSS v3.1 · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
Fix & remediation
No official patched release is specified yet. Block requests to POST /admin-api/crm/contract/check at your reverse proxy or WAF for non-admin roles, or patch CrmContractController.java directly to add proper @PreAuthorize permission checks.
AI-suggested. Run it in staging first and check it against the vendor advisory. Why?
NVD description
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.
References
- https://github.com/AnkesKasty/cve-request-poc/blob/a7b6d1423555812d8efa26c91c5d0683164b31e5/yshop-crm/poc_crm_contract_check.py
- https://github.com/guchengwuyue/yshop-crm/blob/a77250f7ace63d5b6b363841d9ff441e0e2a9a6b/yshop-crm/sql/yshop-crm-open-source.sql#L2637
- https://github.com/guchengwuyue/yshop-crm/blob/a77250f7ace63d5b6b363841d9ff441e0e2a9a6b/yshop-crm/yshop-module-crm/yshop-module-crm-biz/src/main/java/co/yixiang/yshop/module/crm/controller/admin/crmcontract/CrmContractController.java#L100-L106
- https://github.com/guchengwuyue/yshop-crm/blob/a77250f7ace63d5b6b363841d9ff441e0e2a9a6b/yshop-crm/yshop-module-crm/yshop-module-crm-biz/src/main/java/co/yixiang/yshop/module/crm/service/crmcontract/CrmContractServiceImpl.java#L315-L432
- https://www.vulncheck.com/advisories/yshop-crm-through-2.1.3-missing-authorization-via-admin-api-crm-contract-check