CVE-2026-105637: Plane: Cross-Project Asset Hijacking via 'ProjectBulkAssetEndpoint' (sibling of CVE-2026-46558)
Plane is an open-source project management tool. Prior to 1.4.0, ProjectBulkAssetEndpoint.post in apps/api/plane/app/views/asset/v2.py retrieves assets using idin=assetids and workspaceslug=slug but does not constrain the query with projectid from the URL. A workspace Guest can provide asset UUIDs from another project in the same workspace and reassign their issueid, commentid, pageid, draftissueid, or projectid to an entity the attacker controls. Plane then treats the attacker's project as the new owner and provides a presigned download URL for the hijacked file. This issue is fixed in 1.4.0.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Planeto a version that resolves this vulnerability.Fixed in 1.4.0
Event History
Frequently Asked Questions
Who can exploit this issue?
A workspace Guest can exploit it. The attacker needs asset UUIDs for files belonging to a different project in the same workspace and must be able to reference entities they control.
What access and conditions are required for exploitation?
The vulnerable endpoint is network-accessible and requires low privileges, with no user interaction required. The affected assets must be in the same workspace as the attacker’s guest account, but in another project.
What can an attacker do with a hijacked asset?
The attacker can reassign an asset’s issue_id, comment_id, page_id, draft_issue_id, or project_id to an entity they control. Plane then considers the attacker’s project the owner and supplies a presigned download URL for the file.
Which versions should be remediated?
Plane versions before 1.4.0 are affected. Upgrade to version 1.4.0, which includes the fix.