Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged user
-
DeliveryEnumerate target resourceId values
-
ExploitPOST crafted request to /approval-resource/push
-
ExecutionBypass missing ownership check
-
ImpactAlter approval status and read approval details
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 as a low-privileged user of CordysCRM (PR:L) - exploitation is not possible unauthenticated. Given that prerequisite, no special configuration or non-default deployment mode is needed: the attacker simply issues POST /approval-resource/push supplying arbitrary resourceId values for contracts, invoices, quotations, or orders, because the controller omits ownership validation. No user interaction is required and the attack works remotely over the network against default configurations. The practical limiting factor is solely the need for any registered low-privilege account; impact is bounded to altering approval status and reading approval details (no availability or system-level impact). |
| Impact | This is a medium-severity broken-access-control (IDOR) flaw with moderate but not urgent real-world risk. The provided CVSS 4.0 vector (5.3) is internally consistent with the description: network-reachable (AV:N), trivial to exploit (AC:L/AT:N), requires an authenticated low-privileged account (PR:L), needs no user interaction (UI:N), and yields only low confidentiality and integrity impact (VC:L/VI:L) with no availability or scope change. Publicly available exploit code exists (VulnCheck-reported Python POC on GitHub), which raises the practical likelihood of opportunistic abuse by any user who already holds a foothold, but there is no CISA KEV listing and no EPSS score in the provided data, so there is no evidence of active or widespread exploitation at time of analysis. The key gating factor - PR:L - keeps this from being a mass-exploitation threat: an attacker must first obtain valid (even if low-privilege) credentials. Net assessment: a legitimate priority for organizations running CordysCRM with multiple user tiers, but not a drop-everything issue; it is a 'high-plausibility, low-blast-radius' authorization bug rather than a critical unauthenticated RCE. Note: EPSS and KEV data were not supplied, so exploitation-probability signals could not be cross-referenced. |
| Exploit ScenarioDerived | A low-privileged but authenticated CordysCRM user sends a crafted POST request to /approval-resource/push with a resourceId belonging to another user's contract, invoice, quotation, or order. Because the endpoint performs no ownership check, the server processes the submission, letting the attacker alter that resource's approval status and read its approval details. A public Python POC (poc_approval_resource_push.py) demonstrating this request already exists. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 11, 2026
Broken access control in CordysCRM through 1.9.3 allows any authenticated low-privileged user to submit arbitrary business resources for approval by calling POST /approval-resource/push without any ownership check, altering approval status and exposing approval details for contracts, invoices, quotations, and orders. The flaw is remotely reachable with a valid session but requires authentication (PR:L), and impact is bounded to low confidentiality and integrity loss with no availability or system-level effect. Publicly available exploit code exists, including a proof-of-concept script, but there is no confirmation of active exploitation, and no vendor-released patch was identified in the available data at time of analysis.
RemediationAI
No vendor-released patch was identified in the provided data at time of analysis, so the primary action is to track the CordysCRM project and the VulnCheck advisory (https://www.vulncheck.com/advisories/cordyscrm-through-1.9.3-missing-authorization-via-approval-resource-push) for a fixed release and upgrade beyond 1.9.3 as soon as one is published; the code-level fix is straightforward server-side authorization, i.e. verifying that the caller owns or is entitled to the resourceId before starting an approval and before returning approval details. Until a patch is available, compensating controls should target the specific endpoint rather than generic hardening: block or restrict POST /approval-resource/push at a reverse proxy or WAF for all but trusted approval-administrator roles or source IPs, accepting that legitimate approval submissions from ordinary users will be rejected while the rule is in place; alternatively, temporarily disable the approval-push feature in the application configuration if business processes permit, with the trade-off that approval workflows stop functioning entirely. Because exploitation requires only a valid low-privilege account, tighten account provisioning and review all existing non-administrative accounts for necessity, and monitor and audit approval records - comparing approver identity against resource ownership - to detect tampering with contracts, invoices, quotations, and orders, since altered approval status may already have occurred before mitigation is applied. The public proof-of-concept at https://github.com/AnkesKasty/cve-request-poc/blob/a7b6d1423555812d8efa26c91c5d0683164b31e5/CordysCRM/poc_approval_resource_push.py can be used to validate whether the mitigation rule actually blocks the request path.
Affected VersionsENISA
Affected Packages
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 vulnerability is a missing authorization defect (CWE-862) in the Java/Spring backend of CordysCRM, an open-source CRM maintained under the 1Panel-dev organization. The affected handler is the approval resource controller (ApprovalResourceController.java, lines 32-43 in the referenced commit), which implements POST /approval-resource/push. The endpoint accepts a caller-supplied resourceId and starts an approval workflow for the referenced object, but it performs no verification that the requesting principal owns or is otherwise entitled to act on that resource, and it likewise returns approval details without an ownership guard. This is effectively an IDOR/broken-object-level-authorization pattern: the application authenticates the session but never authorizes the action against the target object, so any logged-in account, including a minimally privileged one, can enumerate or guess identifiers for contracts, invoices, quotations, and orders belonging to other users. Per the assessed vector (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N), exploitation is network-reachable, needs no user interaction, and needs no non-default configuration; the only prerequisite is a valid low-privilege session, since the endpoint cannot be reached unauthenticated. The CPE string cpe:2.3:a:1panel-dev:cordyscrm:*:*:*:*:*:*:*:* indicates the affected package family is the CordysCRM application as distributed by 1Panel-dev.
Know when Cordyscrm 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
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
Network-reachable endpoint with low complexity, but requires an authenticated low-privilege account (PR:L); only partial read of approval details (C:L) and alteration of approval status (I:L), no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
CordysCRM through 1.9.3 contains a missing authorization vulnerability in POST /approval-resource/push that allows authenticated users to submit any resource for approval without ownership checks. Low-privileged attackers can supply arbitrary resourceId values for contracts, invoices, quotations or orders to alter their approval status and read approval details.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Related Vulnerabilities in CordysCRM Missing Authorization and Permission Bypass
View all 7CordysCRM before 1.7.2 exposes its SSE notification endpoints anonymously, allowing a remote unauthenticated attacker wh
Unauthenticated information disclosure in CordysCRM (1Panel-dev) versions prior to 1.7.2 lets any network-reachable call
CordysCRM 1.7.3 and earlier allows an authenticated user holding the PROCESS_SETTING_ADD permission to store an attacker
Server-side request forgery in CordysCRM (1Panel-dev) up to version 1.4.1 allows authenticated remote attackers to coerc
Server-side request forgery in CordysCRM (by 1Panel-dev) up to version 1.4.1 allows low-privileged remote attackers to m
Stored cross-site scripting in CordysCRM (1Panel-dev, versions up to 1.4.1) allows an authenticated remote attacker to i
EUVD-2026-96705
GHSA-74x7-h2r2-9j6r
NVD
CVE.org
EPSS
VulDB
Exploit-DB