Plane: Cross-Workspace Asset Duplication IDOR + WorkspaceFileAssetEndpoint and FileAssetEndpoint Missing Authorization
Plane is an open-source project management tool. Prior to 1.4.0, DuplicateAssetEndpoint fetches a source FileAsset without limiting it to the caller's workspace, allowing cross-workspace asset duplication. WorkspaceFileAssetEndpoint and the legacy FileAssetEndpoint omit workspace authorization, allowing authenticated users to read, create, modify, or delete assets in workspaces where they are not members. Separately, WorkspaceViewViewSet.retrieve lacks the authorization decorator used by its sibling actions, exposing an unauthorized workspace-view read surface. This issue is fixed in 1.4.0.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-104971
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 04:12 UTC · Revision 1
Source evidence
Plane: Cross-Workspace Asset Duplication IDOR + WorkspaceFileAssetEndpoint and FileAssetEndpoint Missing Authorization
core-osv · Original sourcePublished 5 Oct 2026, 17:04 UTC
Plane is an open-source project management tool. Prior to 1.4.0, DuplicateAssetEndpoint fetches a source FileAsset without limiting it to the caller's workspace, allowing cross-workspace asset duplication. WorkspaceFileAssetEndpoint and the legacy FileAssetEndpoint omit workspace authorization, allowing authenticated users to read, create, modify, or delete assets in workspaces where they are not members. Separately, WorkspaceViewViewSet.retrieve lacks the authorization decorator used by its sibling actions, exposing an unauthorized workspace-view read surface. This issue is fixed in 1.4.0.
osv:CVE-2026-104971
Complete source record
{
"id": "91a42c19162156eb16969f23ab1df07a5513c24233f0f5276e2b2123a9435e87",
"url": "https://osv.dev/vulnerability/CVE-2026-104971",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Plane: Cross-Workspace Asset Duplication IDOR + WorkspaceFileAssetEndpoint and FileAssetEndpoint Missing Authorization",
"summary": "Plane is an open-source project management tool. Prior to 1.4.0, DuplicateAssetEndpoint fetches a source FileAsset without limiting it to the caller's workspace, allowing cross-workspace asset duplication. WorkspaceFileAssetEndpoint and the legacy FileAssetEndpoint omit workspace authorization, allowing authenticated users to read, create, modify, or delete assets in workspaces where they are not members. Separately, WorkspaceViewViewSet.retrieve lacks the authorization decorator used by its sibling actions, exposing an unauthorized workspace-view read surface. This issue is fixed in 1.4.0.",
"evidence": "osv:CVE-2026-104971",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-104971",
"aliases": [
"CVE-2026-104971",
"GHSA-p57q-8hh8-7fc7"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/makeplane/plane",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "917b23a6c16d93fc00cef67900eff2755e8b13f7"
},
{
"fixed": "4577dc3f7a6b5a198602b602a45c6b0abdc7204b"
},
{
"fixed": "ac11c3ef7939e31201fa92a17de106906025590f"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "1.4.0"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "4577dc3f7a6b5a198602b602a45c6b0abdc7204b"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "ac11c3ef7939e31201fa92a17de106906025590f"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "917b23a6c16d93fc00cef67900eff2755e8b13f7"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v1.4.0"
}
]
}
}
],
"versions": [
"v1.3.1",
"v1.3.0",
"v1.2.3",
"v1.2.2",
"v1.2.1",
"v1.2.0",
"v1.1.0",
"v1.0.0",
"v0.28.0",
"v0.27.1",
"v0.27.0",
"v0.26.1",
"v0.26.0",
"v0.25.3",
"v0.25.2",
"v0.25.1",
"v0.25.0",
"v0.24.0",
"v0.23.1",
"v0.23.0",
"v0.22-dev",
"v0.21-dev",
"v0.20-dev",
"v0.19-dev",
"v0.18-dev",
"v0.17-dev",
"v0.16-dev",
"v0.15.4-dev",
"v0.15.3-hotfix",
"v0.15.2-dev",
"v0.15.1-dev",
"v0.15-dev",
"v0.14.2-dev",
"v0.14.1-dev",
"v0.14-dev",
"v0.13.2-dev",
"v0.13.1-dev",
"v0.13-dev",
"v0.12.2-dev",
"v0.12.1-dev",
"v0.12-dev",
"v0.11-dev",
"v0.10-dev",
"v0.9-dev",
"v0.8-dev",
"v0.7.1-dev",
"v0.7-dev",
"v0.6-dev",
"v0.5-dev",
"v0.4-dev",
"v0.3.1-dev",
"v0.1-dev"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-104971.json"
}
}
],
"modified": "2026-10-28T02:30:25.782551399Z",
"provider": "osv",
"references": [
"https://github.com/makeplane/plane/releases/tag/v1.4.0",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/104xxx/CVE-2026-104971.json",
"https://github.com/makeplane/plane/security/advisories/GHSA-p57q-8hh8-7fc7",
"https://nvd.nist.gov/vuln/detail/CVE-2026-104971",
"https://github.com/makeplane/plane/commit/4577dc3f7a6b5a198602b602a45c6b0abdc7204b",
"https://github.com/makeplane/plane/commit/ac11c3ef7939e31201fa92a17de106906025590f",
"https://github.com/makeplane/plane/pull/8885",
"https://github.com/makeplane/plane/pull/9288"
],
"provider_metadata": {
"cwe_ids": [
"CWE-639",
"CWE-862"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/104xxx/CVE-2026-104971.json"
}
},
"related_cves": [
{
"value": "CVE-2026-104971",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 492416,
"published_at": "2026-10-05T17:04:27.821+00:00"
}