{"id":"CVE-2026-104956","title":"Plane is an open-source project management tool","summary":"Plane is an open-source project management tool. Prior to 1.4.0, the unauthenticated public issues endpoint accepts group_by and sub_group_by query parameters and passes them without an allowlist to grouped paginators, where they are use…","severity":"medium","cvss":5.3,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","cwe":["CWE-943"],"vendor":"makeplane","product":"plane","affected":["plane < 1.4.0"],"published":"2026-10-05","updated":"2026-10-05","sourceUpdated":"2026-10-05T17:17:11.270","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-104956","references":[{"url":"https://github.com/makeplane/plane/commit/d3d3de44cf13991025783c598d8b34229fb47729","label":"security-advisories@github.com"},{"url":"https://github.com/makeplane/plane/pull/9347","label":"security-advisories@github.com"},{"url":"https://github.com/makeplane/plane/releases/tag/v1.4.0","label":"security-advisories@github.com"},{"url":"https://github.com/makeplane/plane/security/advisories/GHSA-wwgj-929g-42cm","label":"security-advisories@github.com"}],"tags":["nvd","cve.org"],"ingestedAt":"2026-10-05T17:27:45.049Z","slug":"CVE-2026-104956","body":"## Overview\n\nPlane is an open-source project management tool. Prior to 1.4.0, the unauthenticated public issues endpoint accepts group_by and sub_group_by query parameters and passes them without an allowlist to grouped paginators, where they are used as ORM field names by F(field), .values(field), .order_by(field), and Window partition_by operations. An anonymous attacker can supply arbitrary field paths that trigger an unhandled FieldError or KeyError and an HTTP 500 response, or force the ORM to resolve __-separated relational paths as a blind traversal oracle. This is the same field-name injection class addressed by earlier order_by sanitization, but that remediation left group_by and sub_group_by unvalidated. The issue does not directly disclose column values because issue_group_values() returns an empty list for unknown fields, the result projection uses a fixed required_fields list, and the subgrouped path raises KeyError before serialization. This issue is fixed in 1.4.0.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":29,"depthScoreParts":{"impact":29.2,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}