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
4DescriptionCVE.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.
AnalysisAI
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.
Technical ContextAI
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.
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.
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
Same weakness CWE-862 – Missing Authorization
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-51280