Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-104956— Plane: Unauthenticated ORM field-name injection via `group_by`/`sub_group_by` on public deploy boards (DoS + blind oracle)

Quick assessment

Affected
makeplane plane
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Plane 是一款开源的项目管理工具。在版本 1.4.0 之前,未认证的用户可以访问公开的问题(issues)接口,该接口接受 和 查询参数,并在未经白名单校验的情况下将这些参数传递给分组的分页器(grouped paginators)。这些参数随后被用作 ORM(对象关系映射)中的字段名,应用于 、 、 以及 Window 函数的 操作。 攻击者无需认证即可构造任意的字段路径,从而触发未处理的 或 异常,导致服务器返回 HTTP 500 错误响应;或者迫使 ORM 将以下划线( )分隔的关系路径解析为盲式遍历的探

CVSS 5.3 · Medium

Affected Version Matrix 1

VendorProduct Version RangeStatus
makeplane plane < 1.4.0 affected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-104956

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Plane: Unauthenticated ORM field-name injection via `group_by`/`sub_group_by` on public deploy boards (DoS + blind oracle)
Source: CVE Program / CVE List V5
Vulnerability Description
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 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.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Source: CVE Program / CVE List V5
Vulnerability Type
数据查询逻辑中特殊元素的不当中和
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
makeplane plane < 1.4.0 -

II. Public POCs for CVE-2026-104956

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-104956

请登录查看更多情报信息。

Patches & Fixes for CVE-2026-104956 (2)

Vendor Advisories for CVE-2026-104956 (1)

Vendor Pages for CVE-2026-104956 (1)

Same Patch Batch · makeplane · 2026-10-05 · 38 CVEs total

CVE-2026-105636 9.9 CRITICAL Plane: SSRF via HTTP redirect in webhook delivery (allow_redirects not set)
CVE-2026-105639 9.8 CRITICAL Plane: Pre-auth workspace invitation hijack via email-squat and self-served invitation tok
CVE-2026-105641 9.8 CRITICAL Plane: Hardcoded SECRET_KEY and LIVE_SERVER_SECRET_KEY shipped in aio/cli community deploy
CVE-2026-105637 9.6 CRITICAL Plane: Cross-Project Asset Hijacking via 'ProjectBulkAssetEndpoint' (sibling of CVE-2026-4
CVE-2026-105638 9.1 CRITICAL Plane: Magic-code verifier endpoint has no rate limit, enabling 6-digit OTP brute force
CVE-2026-105640 9.1 CRITICAL Plane: Account Takeover via Unverified OAuth Email Match (Gitea, self-managed GitLab)
CVE-2026-104968 8.7 HIGH Plane: Cross-workspace member enumeration via /api/workspaces/{slug}/entity-search/
CVE-2026-105630 8.7 HIGH Plane: Stored XSS via SVG attachment served inline on the application origin (account take
CVE-2026-105632 8.7 HIGH Plane: Broken Access Control - joinProject GraphQL mutation allows self-join into private
CVE-2026-104979 8.7 HIGH Plane: Cross-tenant stored XSS in intake enables account takeover
CVE-2026-104976 8.7 HIGH Plane: SSRF in Gitea OAuth
CVE-2026-104966 8.7 HIGH Plane: Cross-Workspace IDOR in Estimate and Comment Endpoints Allows Read, Modify, and Inj
CVE-2026-104892 8.7 HIGH Plane: Plaintext logging of API token
CVE-2026-104971 8.5 HIGH Plane: Cross-Workspace Asset Duplication IDOR + WorkspaceFileAssetEndpoint and FileAssetEn
CVE-2026-104978 8.2 HIGH Plane: Invitation Hijack in Project Join Flow via Missing Authorization and Email-Only Acc
CVE-2026-105634 8.1 HIGH Plane: Privilege Escalation: Project Guest Can Demote Admin/Member Roles
CVE-2026-104974 8.1 HIGH Plane: Disabled User Auto-Reactivation on Login
CVE-2026-104970 8.1 HIGH Plane: InstanceAdminSignUpEndpoint TOCTOU race allows two concurrent unauthenticated calle
CVE-2026-104977 7.7 HIGH Plane: Incomplete fix of CVE-2026-27706 — SSRF still reachable on: missing is_blocked_ip (
CVE-2026-105628 7.6 HIGH Plane: OAuth Avatar Redirect SSRF Leads to Internal Data Exfiltration via Static Asset End

Showing top 20 of 38 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2026-104956

No comments yet


Leave a comment