{"schema":"threatline.record/2","record":{"id":"CVE-2026-109172","aliases":[],"summary":"yshop-crm through 2.1.3 Missing Authorization via contract-receivables check endpoint","details":"yshop-crm through 2.1.3 contains a missing authorization vulnerability that allows any authenticated back-office user to approve or reject receivables records by calling POST /admin-api/crm/contract-receivables/check. The handler lacks a @PreAuthorize check and the approver checks in CrmContractReceivablesServiceImpl.check are commented out, so attackers can approve records by id, inflating contract return_money and forging approval logs.","categories":["Unclassified"],"product":"yshop-crm","vendor":"guchengwuyue","ecosystem":null,"affected_ranges":[{"source":"CVE List","source_url":"https://www.cve.org/CVERecord?id=CVE-2026-109172","source_modified_at":"2026-10-14T17:42:10.418Z","fetched_at":"2026-10-23T18:48:36.087640Z","product":"yshop-crm","vendor":"guchengwuyue","versions":[{"version":"0","lessThanOrEqual":"2.1.3","status":"affected","versionType":"semver"}],"defaultStatus":"unaffected"}],"fixed_versions":[],"cvss":5.3,"severity":"Medium","kev":{"listed":false},"epss":{"probability":0.00196,"percentile":0.08815,"score_date":"2026-10-23"},"published_at":"2026-10-12T13:10:34.283Z","modified_at":"2026-10-14T17:42:10.418Z","provenance":[{"source":"CVE List","url":"https://www.cve.org/CVERecord?id=CVE-2026-109172","fetched_at":"2026-10-23T18:48:36.087640Z","source_modified_at":"2026-10-14T17:42:10.418Z"},{"source":"EPSS","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-109172","fetched_at":"2026-10-23T18:42:43.628194Z","source_modified_at":"2026-10-23"}],"sources":["CVE List","EPSS"],"references":[{"source":"CVE List","url":"https://github.com/AnkesKasty/cve-request-poc/blob/a7b6d1423555812d8efa26c91c5d0683164b31e5/yshop-crm/poc_crm_receivables_check.py","tags":["exploit"]},{"source":"CVE List","url":"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/crmcontractreceivables/CrmContractReceivablesController.java#L79-L85","tags":["technical-description"]},{"source":"CVE List","url":"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/crmcontractreceivables/CrmContractReceivablesServiceImpl.java#L228-L327","tags":["technical-description"]},{"source":"CVE List","url":"https://github.com/guchengwuyue/yshop-crm/blob/a77250f7ace63d5b6b363841d9ff441e0e2a9a6b/yshop-crm/sql/yshop-crm-open-source.sql#L2590","tags":["technical-description"]},{"source":"CVE List","url":"https://www.vulncheck.com/advisories/yshop-crm-through-2.1.3-missing-authorization-via-contract-receivables-check-endpoint","tags":["third-party-advisory"]}],"locations":[],"motoko_assessment":{"status":"requires_architecture_review","automatic_remediation":false},"cve_state":"PUBLISHED","cvss_source":"CVE List","ssvc":{"exploitation":"poc","automatable":"no","technical_impact":"partial","assessed_at":"2026-10-14T17:41:53.894415Z"},"classification":{"method":"product-first software-layer rules","rules_version":"2.1","matched_on":null,"confidence":"unknown","reviewed":false},"change_timestamp":"2026-10-14T17:42:10.418Z","content_hash":"f621d021313fba888f32deeb153cdf18bb549edb107136c1222e671251f1ba18"}}
