Skip to content
Heist/ feed
Back to feed
High

Plane: Cross-Workspace Asset Duplication IDOR + WorkspaceFileAssetEndpoint and FileAssetEndpoint Missing Authorization

Type: advisorySources: OSV

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 source

Published 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"
}