Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged project editor
-
DeliveryCraft PATCH to /api/v3/work_packages/{id} with _links.fileLinks
-
ExploitResolve FileLink ids bypassing manage_file_links
-
ExecutionRe-parent or hard-delete target FileLinks
-
ImpactExpose file metadata and destroy links
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 | Exploitation requires an authenticated account holding the edit_work_packages permission on a project but NOT the manage_file_links permission, targeting the PATCH /api/v3/work_packages/{id} endpoint with a _links.fileLinks payload; external file storage integration must be in use so that Storages::FileLink records exist to detach, hard-delete, or re-parent. Limiting factors: the attacker must already be a legitimate low-privileged project editor (PR:L, not unauthenticated), no user interaction is needed, and the behavior affects OpenProject versions prior to 17.6.0; cross-project re-parenting depends on the attacker knowing or enumerating raw FileLink database ids. |
| Impact | The supplied CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:L, base 7.6) is internally consistent with the description: network-reachable API, low complexity, and low privileges (an existing project member with edit rights), yielding high integrity impact through unauthorized deletion/re-parenting of FileLinks, low confidentiality from metadata disclosure, and low availability from data destruction. No EPSS score, KEV entry, POC, or SSVC decision data was provided, so real-world exploitation likelihood cannot be quantified - but the low bar (any authenticated editor, no user interaction, default configuration once storages are enabled) makes this a credible insider or compromised-account privilege-boundary issue rather than a mass-exploited internet threat. The primary limiting factor is that the attacker must already be an authenticated user with edit_work_packages on a project, so this is an authorization-boundary escalation, not unauthenticated RCE; prioritize patching where external file storages hold sensitive documents. |
| Exploit ScenarioDerived | A user granted only edit_work_packages on a project sends a PATCH request to /api/v3/work_packages/{id} with a crafted _links.fileLinks array referencing FileLink ids from other projects. The API resolves those ids without a manage_file_links check, letting the attacker re-parent another project's file links onto their own work package (leaking origin filename, id, and MIME type) or omit existing ids to hard-delete them. No public exploit is identified at time of analysis, but the attack is a single authenticated API call with low complexity. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 30, 2026
Broken authorization in OpenProject before 17.6.0 lets authenticated users holding only the edit_work_packages permission manipulate file-storage links they should not control. By submitting _links.fileLinks to PATCH /api/v3/work_packages/{id}, an attacker lacking manage_file_links can resolve Storages::FileLink records by raw id to detach or hard-delete them, re-parent FileLinks from other projects onto their own work package, and read origin filename, origin id, and MIME-type metadata. There is no public exploit identified at time of analysis and it is not listed in CISA KEV, but the flaw is remotely reachable by any low-privileged project editor.
RemediationAI
Vendor-released patch: upgrade to OpenProject 17.6.0 or later, which removes the unauthorized file_links_ids write path and adds the ValidateReplacements contract enforcing manage_file_links plus same-storage and ownership checks (see PR https://github.com/opf/openproject/pull/23815 and commit db480bdeb8802e3d33e4448bb4e4b56a01de2e1f). If immediate upgrade is not possible, the practical compensating control is to restrict who holds the edit_work_packages permission and to review project role definitions so that users with edit rights are trusted, since exploitation requires that permission; where feasible, disabling or removing external file storage integrations eliminates the FileLink records that can be manipulated, at the cost of losing document-linking functionality. Consult the GitHub Security Advisory GHSA-c6rc-4288-8p4f (https://github.com/opf/openproject/security/advisories/GHSA-c6rc-4288-8p4f) for authoritative guidance.
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 is a Ruby on Rails web-based project management platform that integrates external file storages (e.g. Nextcloud, OneDrive/SharePoint) by attaching Storages::FileLink records to work packages. The root cause is CWE-862 (Missing Authorization): the work package update path accepted a file_links_ids array parsed from _links.fileLinks hrefs and directly assigned model.file_links = Storages::FileLink.where(id: file_links_ids) in SetAttributesService without checking the manage_file_links permission. Because the has_many :file_links association used dependent: :delete_all, replacing the collection silently hard-deleted the previously associated links, and resolving links by raw database id let records from unrelated projects be re-parented. The fix (PR #23815, commit db480bd) removes the unguarded write path and introduces a ValidateReplacements contract that enforces both manage_file_links authorization and same-storage/ownership checks before any replacement is applied.
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:L/I:H/A:L
Network API reachable by an authenticated editor (PR:L, AC:L); high integrity from unauthorized delete/re-parent, low confidentiality from metadata leak, low availability from data destruction.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
OpenProject is open-source, web-based project management software. Prior to 17.6.0, PATCH /api/v3/work_packages/{id} accepted _links.fileLinks and allowed authenticated users with edit_work_packages but without manage_file_links to resolve Storages::FileLink records by raw id, detach or hard-delete existing FileLinks, and re-parent FileLinks from other projects to an attacker-controlled work package, exposing origin filename, origin id, and MIME type metadata. This issue is fixed in 17.6.0.
Executive ViewAI
OpenProject versions before 17.6.0 contain a broken authorization flaw that allows any authenticated project editor to view, delete, and manipulate file links across project boundaries without proper access controls. While no public exploit identified at time of analysis, this remotely reachable vulnerability affects organizations using OpenProject file-storage features, creating significant risks of unauthorized data exposure and integrity loss through low-privileged accounts exceeding their intended permissions.
No vendor-released patch identified at time of analysis. Interim mitigations include: restrict edit_work_packages permission to administrators only; implement audit logging for all file-storage API operations; monitor logs for PATCH requests to /api/v3/work_packages; disable file-storage integration if not operationally required; implement project-level access segmentation to limit cross-project file-link exposure.
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-51280
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB