Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with management role in Project A
-
DeliveryBrowse or enumerate public Query IDs from Project B shared views
-
ExploitCraft DELETE request using Project A :project_id but Project B Query :id
-
ExecutionServer authorizes against Project A context without validating query ownership
-
PersistQuery.visible scope confirms attacker can see the query
-
ImpactShared Calendar or Team Planner view deleted from Project B
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Exploitation requires an authenticated OpenProject user account with management-level permissions in at least one project on the target instance (CVSS PR:L confirmed). The target must be a public or shared Calendar or Team Planner Query object belonging to a different project on the same instance. The attacker must know or discover the numeric :id of the target query (e.g., by enumerating shared views visible via Query.visible scope). Exploitation is limited to delete operations only - no read or modify path on private data is described. Limiting factors: authentication and project management role are mandatory prerequisites; the impact is confined to deletion of shared views rather than data exfiltration or privilege escalation; the flaw does not affect private (non-public) queries that are not visible to the attacker's account. |
| Impact | The CVSS 3.1 score of 5.4 (Medium) with vector AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L accurately reflects the bounded real-world risk. The PR:L metric is key: exploitation requires an authenticated account that already holds management-level permissions in at least one project on the target instance, which significantly narrows the attacker population compared to fully unauthenticated flaws. The integrity and availability impacts are Low - the attacker can delete shared views but cannot read private data, escalate privileges, or execute code. No EPSS data was provided in the intelligence sources; given the absence of KEV listing and no public exploit code, this vulnerability is unlikely to see widespread opportunistic exploitation. The primary threat actor profile is a malicious or disgruntled internal user who has legitimate project management access and seeks to disrupt other teams' shared planning views. For multi-tenant or large enterprise OpenProject deployments with many projects and shared views, the risk is meaningfully higher than for small single-team instances. No conflicting signals were identified between the CVSS vector and the description. |
| Exploit ScenarioDerived | An attacker with a legitimate OpenProject account holding management permissions in Project A identifies the numeric IDs of public Calendar or Team Planner queries belonging to Project B (discoverable by browsing shared views or through the API). The attacker crafts a deletion HTTP request using Project A's :project_id in the URL path but substitutes Project B's query :id as the resource identifier; the server authorizes the request against Project A's context and deletes the unrelated Project B query without error. No public exploit code exists at time of analysis, but the attack is straightforward to reproduce manually given knowledge of the authorization flaw. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 26, 2026
Cross-project IDOR in OpenProject's Calendar and Team Planner modules allows an authenticated low-privileged user with management rights in one project to delete public or shared Calendar and Team Planner Query views belonging to entirely separate projects on the same instance. The authorization context is established using :project_id from the URL (Project A), but the targeted Query object is resolved independently by :id through Query.visible(current_user), with no check that the loaded Query belongs to the authorized project - enabling cross-project privilege misuse. Versions prior to 17.3.3 and 17.4.1 are affected; no public exploit or active exploitation (CISA KEV) has been identified at time of analysis.
RemediationAI
Upgrade OpenProject to version 17.3.3 (stable channel) or 17.4.1 (current channel), which contain the fix for this vulnerability per the vendor advisory at https://github.com/opf/openproject/security/advisories/GHSA-jrx5-px3f-vfq4. If immediate upgrading is not feasible, a compensating control is to audit and restrict management-role assignments across projects, ensuring only fully trusted users hold project management permissions - this reduces the attacker population since exploitation requires that role. Administrators can also review and audit shared public Calendar and Team Planner queries for unexpected deletions. Disabling the Calendar or Team Planner modules entirely via OpenProject's module configuration would eliminate the attack surface for those specific modules, though this has the trade-off of removing planning functionality for all users. No network-layer controls (WAF, firewall rules) will reliably prevent exploitation since the attack uses standard authenticated HTTP requests to legitimate API endpoints.
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
OpenProject (CPE: cpe:2.3:a:opf:openproject:*:*:*:*:*:*:*:*) is an open-source Ruby on Rails web application for project management. The root cause is CWE-639 (Authorization Bypass Through User-Controlled Key): the Calendar and Team Planner controllers perform their permission check against the :project_id URL parameter, granting the request context of Project A's permissions. However, the Query model is subsequently loaded via a separate :id parameter using the scope Query.visible(current_user), which only checks whether the query is visible to the user in general - not whether it belongs to the project already authorized. This decoupled two-phase lookup means the authorization boundary (project context) and the resource scope (which query is acted on) are never reconciled, a textbook IDOR pattern where a user-controlled key (:id) bypasses the intended object-level authorization. The impact is limited to deletion operations on public or shared Calendar and Team Planner views, with no read/exfiltration path identified in the description.
Know when Openproject 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
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L
Network-accessible web app, low complexity IDOR; PR:L because management role in any one project is required; no confidentiality impact as only deletion is possible.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
OpenProject is open-source, web-based project management software. Prior to 17.3.3 and 17.4.1, a cross-project IDOR / authorization context confusion in the Calendar and Team Planner modules allows a user with management permissions in one project to delete public Calendar or Team Planner Queries from another project where they do not have the corresponding management permissions. Both modules authorize the request against the project identified by :project_id in the URL, but the actual Query object is loaded later by :id from Query.visible(current_user) without verifying that the loaded Query belongs to the authorized project. As a result, an attacker can use permissions from Project A to delete shared/public Calendar or Team Planner views from Project B, causing integrity impact and limited availability impact for users relying on those shared views. This vulnerability is fixed in 17.3.3 and 17.4.1.
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.
More in Openproject
View allA SQL injection vulnerability in the activities API in OpenProject before 8.3.2 allows a remote attacker to execute arbi
OpenProject is web-based project management software. Rated high severity (CVSS 7.5), this vulnerability is remotely exp
OpenProject is open source project management software. Rated medium severity (CVSS 6.5), this vulnerability is remotely
Authenticated remote code execution affects the official openproject/openproject Docker image, which ships with a hardco
Cross-project folder hijacking in OpenProject before 17.3.3 and 17.4.1 lets a project-admin abuse an insecure direct obj
SQL injection in OpenProject's baseline-comparison (timestamps) functionality lets an authenticated, low-privileged user
OpenProject has a CVSS 9.9 command injection vulnerability allowing authenticated users to execute OS commands on the pr
Remote code execution in OpenProject before 17.3.3 and 17.4.1 arises from cache store poisoning, allowing an attacker wi
OpenProject, a web-based project management platform, contains a critical SQL injection vulnerability in versions prior
OpenProject (before 16.6.4) has a local file read vulnerability through SVG-based ImageMagick exploitation in the PDF ex
OpenProject's Repositories module contains a stored cross-site scripting (XSS) vulnerability that occurs when displaying
Token decryption in OpenProject 17.0 allows authenticated attackers to intercept and decrypt 24-hour authentication toke
EUVD-2026-39873
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB