CVE Intelligence

Vulnerabilidades do Makeplane Plane

🔔 Criar alerta RSS Verificador de versão

CVEs publicadas que afetam Makeplane Plane: 54 registro(s), com versões afetadas e correções.

CVE-2026-102986 Alta · 8.1 CWE-639 14/10/2026
Plane: Any Authenticated User Can Upload and Delete Assets in Any Published Project via /api/public/assets/v2/anchor/{anchor}/
Plane is an open-source project management tool. In 1.3.1 and earlier, EntityAssetEndpoint at the public project asset endpoint /api/public/assets/v2/anchor/{anchor}/ requires authentication for write operations but does not verify workspace or project membership. An authenticated user who knows a published project's public DeployBoard.anchor can create FileAsset records in that project and soft-delete existing assets by identifier, allowing cross-workspace file injection, storage abuse, and data loss. The issue is fixed in version 1.4.0.
CVE-2026-102985 Média · 6.5 CWE-862 14/10/2026
Plane: Any project member can modify (deactivate) other members' records
Plane is an open-source project management tool. In 1.3.1 and earlier, ProjectMemberViewSet.partial_update places its authorization checks inside the role update branch, so a guest or member can omit role and change another ProjectMember record's is_active field, including deactivating a project administrator. ProjectMemberPreferenceEndpoint.patch separately trusts the member_id path value and lets a project member overwrite another member's preferences. These missing object-level authorization checks permit membership disruption and cross-member preference tampering. The vulnerability is fixed in 1.4.0.
CVE-2026-102980 Média · 6.5 CWE-639 14/10/2026
Plane: Cross-Project Page Content Disclosure via PageVersionEndpoint Missing Project Scope
Plane is an open-source project management tool. Prior to 1.4.0, PageVersionEndpoint in apps/api/plane/app/views/page/version.py scopes page-version lookups by workspace and page identifiers but not by the project_id from the URL. ProjectPagePermission likewise derives the caller's role from the URL project while resolving the requested page workspace-wide, so a member of one project can use that project's identifier to read description_html for a public page in another project in the same workspace. The affected path is read-only and does not enable cross-project page modification. This issue is fixed in version 1.4.0.
CVE-2026-102988 Média · 5.3 CWE-943 13/10/2026
Plane: ORM Field Injection via Unvalidated `order_by` Parameter (Including Unauthenticated Path)
Plane is an open-source project management tool. Prior to 1.4.0, multiple issue-listing endpoints, including unauthenticated public deploy boards handled by IssueListSpaceEndpoint in apps/api/plane/space/views/issue.py, pass the user-controlled order_by parameter through order_issue_queryset in apps/api/plane/utils/order_queryset.py to Django's order_by without allowlist validation. An attacker can use double-underscore relationship traversal to reference arbitrary related model fields, revealing database schema details through errors and potentially disclosing field values through differential ordering. This issue is fixed in version 1.4.0.
CVE-2026-102982 Alta · 8.5 CWE-79 13/10/2026
Plane: XSS in work item comments
Plane is an open-source project management tool. Prior to 1.4.0, the plane comments fail to sanitize unsafe URL schemes stored in comment_html. A project member can store a crafted link in a comment, and attacker-controlled script executes in the browser context of another user who selects the link. This issue is fixed in version 1.4.0.
CVE-2026-102981 Média · 6.5 CWE-200 13/10/2026
Plane: Unauthenticated Workspace Invitation Token Leakage
Plane is an open-source project management tool. Prior to 1.4.0, self-hosted Plane deployments allow unauthenticated GET requests to api/workspaces/{slug}/invitations/{pk}/join/ through WorkspaceJoinEndpoint, whose WorkSpaceMemberInviteSerializer exposes the secret invitation token directly and through get_invite_link. An external attacker can retrieve a token intended for another user and submit it to the invitation acceptance flow, joining the workspace without receiving the invitation and gaining the role assigned to the invite. This issue is fixed in version 1.4.0.
CVE-2026-105640 Crítica · 9.1 CWE-287 05/10/2026
Plane: Autenticação Imprópria por E-mail OAuth Não Verificado (Gitea e GitLab)
O Plane é uma ferramenta de gestão de projetos de código aberto. Antes da versão 1.4.0, o Plane confia em endereços de e-mail retornados pelo OAuth do Gitea e pelo OAuth de implantações self-managed do GitLab em que a confirmação de e-mail está desabilitada, sem verificar se o provedor autenticou a posse do endereço. Um atacante pode definir o e-mail não verificado de uma identidade OAuth como o endereço de uma vítima, que o Plane associa diretamente à conta local existente da vítima. O atacante pode então entrar na conta Plane da vítima sem conhecer a senha dela. GitHub, GitLab.com e Google não são afetados porque esses provedores retornam endereços de e-mail verificados. Este problema está corrigido na versão 1.4.0.
CVE-2026-105638 Crítica · 9.1 CWE-307 05/10/2026
Login por código mágico do Plane: falta de limite de tentativas falhas (CVE-2026-105638)
O Plane é uma ferramenta open source de gestão de projetos. Antes da versão 1.4.0, o login por código mágico enviado por e-mail do Plane usa um código OTP numérico de seis dígitos com aproximadamente 20 bits de entropia. O verificador não possui contador de tentativas falhas por código e um código incorreto não incrementa um contador, não invalida a entrada no Redis nem bloqueia o endereço de e-mail. O verificador estende django.views.View em vez do APIView do DRF, de modo que o limite configurado do AnonRateThrottle não se aplica. A pilha de middleware também não contém limitador de taxa no nível do Django, como django-ratelimit, django-axes ou middleware de limitação por IP. Esta vulnerabilidade está corrigida na versão 1.4.0.
CVE-2026-105641 Crítica · 9.8 CWE-798 05/10/2026
Plane: SECRET_KEY e LIVE_SERVER_SECRET_KEY fixas em manifestos de implantação community (CWE-798)
Plane é uma ferramenta de gestão de projetos de código aberto. Antes da versão 1.4.0, os manifestos deployments/aio/community/ e deployments/cli/community/ fornecem valores padrão fixos e publicamente conhecidos para SECRET_KEY e LIVE_SERVER_SECRET_KEY, que permanecem ativos quando os operadores não os substituem. O script setup.sh de nível superior randomiza os segredos apenas para o caminho de desenvolvimento com Docker Compose, deixando as implantações aio e cli community inalteradas com segredos de produção compartilhados. O conhecimento de SECRET_KEY permite que atacantes forjem valores assinados pelo Django e comprometam contas ou sessões. O conhecimento de LIVE_SERVER_SECRET_KEY permite contornar a autenticação do serviço ao vivo em implantações community inalteradas. Este problema está corrigido na 1.4.0.
CVE-2026-105639 Crítica · 9.8 CWE-200 05/10/2026
Plane: Pre-auth workspace invitation hijack via email-squat and self-served invitation token leak in Plane
Plane is an open-source project management tool. Prior to 1.4.0, Plane's signup flow creates a logged-in User row for any submitted email without an out-of-band ownership check, while User.email is unique=True. The authenticated user can call GET /api/users/me/workspaces/invitations/, which returns each WorkspaceMemberInvite whose email matches request.user.email. WorkSpaceMemberInviteSerializer uses fields = "all", exposing the token that protects the invitation join endpoint. An unauthenticated attacker who knows a target's email can register an account using that address, enumerate pending invitations, and accept an invitation as the target, joining a workspace at the invited role. The term pre-auth describes the attacker's initial state: the attacker has no credential before signup, while the enumeration and join requests use the session created by that signup. This issue is fixed in 1.4.0.
CVE-2026-105637 Crítica · 9.6 CWE-639 05/10/2026
IDOR no endpoint de ativos em lote do Plane permite reatribuição de propriedade
Plane é uma ferramenta de gerenciamento de projetos de código aberto. Antes da versão 1.4.0, ProjectBulkAssetEndpoint.post em apps/api/plane/app/views/asset/v2.py recupera ativos usando id__in=asset_ids e workspace__slug=slug, mas não restringe a consulta com o project_id da URL. Um Guest do workspace pode fornecer UUIDs de ativos de outro projeto do mesmo workspace e reatribuir seus issue_id, comment_id, page_id, draft_issue_id ou project_id a uma entidade controlada pelo atacante. O Plane então trata o projeto do atacante como novo proprietário e fornece uma URL de download pré-assinada para o arquivo sequestrado. Este problema foi corrigido na versão 1.4.0.
CVE-2026-105635 Alta · 7.4 CWE-200 05/10/2026
Plane: Unauthenticated Project Invitation Email Disclosure Enables Unauthorized Project Join Without Token
Plane is an open-source project management tool. Prior to 1.4.0, ProjectJoinEndpoint at GET /api/workspaces/{slug}/projects/{project_id}/join/{pk}/ uses permission_classes = [AllowAny] and returns the full ProjectMemberInvite record, including its email, token, and role, to unauthenticated callers. The corresponding POST endpoint checks only whether the submitted email matches project_invite.email and does not validate the invitation token. An attacker who knows the invitation UUID can discover the invited email, register an account with that email, and accept the invitation without receiving the original invite. This issue is fixed in 1.4.0.
CVE-2026-105636 Crítica · 9.9 CWE-918 05/10/2026
Plane: SSRF por redirecionamentos HTTP não validados na entrega de webhooks
O Plane é uma ferramenta de gerenciamento de projetos de código aberto. Antes da versão 1.4.0, a tarefa de entrega de webhooks em apps/api/plane/bgtasks/webhook_task.py chama requests.post() sem allow_redirects=False e não valida os destinos dos redirecionamentos. A função validate_url() bloqueia endereços privados, de loopback, link-local e reservados na URL original do webhook, mas a URL final alcançada após um ou mais redirecionamentos não é verificada. Um usuário que pode criar um workspace pode registrar um webhook apontando para um endpoint público controlado pelo atacante que responde com um redirecionamento 302 para um endereço interno. O worker do Plane então busca recursos internos, incluindo metadados de nuvem, e armazena o corpo da resposta em webhook_logs, onde o atacante pode recuperá-lo pela API de logs de webhooks do workspace. Este problema está corrigido na 1.4.0.
CVE-2026-105634 Alta · 8.1 CWE-269 05/10/2026
Plane: Privilege Escalation: Project Guest Can Demote Admin/Member Roles
Plane is an open-source project management tool. Prior to 1.3.0, the ProjectMemberViewSet.partial_update method allows any project member, including a user with the lowest GUEST role, to modify another project member's role. The authorization check prevents assigning a role higher than the requester's role but does not prevent assigning a lower or equal role, allowing a Guest to demote Administrators and Members and deny them project control. This vulnerability is fixed in 1.3.0.
CVE-2026-105633 Alta · 7.1 CWE-639 05/10/2026
Plane: Issue Attachment Ownership Hijacking via Missing `issue_id` Scope
Plane is an open-source project management tool. Prior to 1.4.0, the V2 issue-attachment PATCH endpoint accepts issue_id in the URL but omits it from the database query. A project member can use an issue_id they control in the URL while targeting another user's attachment by its pk UUID. Because the server matches only pk, workspace, and project_id, it modifies the attachment regardless of the issue_id in the URL. When the attachment is pending and has not been confirmed as uploaded, the PATCH handler sets created_by = request.user and transfers attachment ownership to the attacker. This issue is fixed in 1.4.0.
CVE-2026-105632 Alta · 8.7 CWE-284 05/10/2026
Plane: Broken Access Control - joinProject GraphQL mutation allows self-join into private (secret) projects
Plane is an open-source project management tool. Prior to 1.4.0, the GraphQL joinProject mutation lets any workspace member add themselves to any project in that workspace including network=0 (secret/private) projects they were never invited to and grants them a full Member role (read + write). The resolver checks only workspace-level membership/role and never checks the target project's visibility (network). This collapses project-level tenant isolation within a workspace: a low-privilege member can read and modify confidential data in every private project. This issue is fixed in 1.4.0.
CVE-2026-105630 Alta · 8.7 CWE-79 05/10/2026
Plane: Stored XSS via SVG attachment served inline on the application origin (account takeover)
Plane is an open-source project management tool. Prior to 1.4.0, an authenticated low-privilege workspace member, including a Guest, can upload an image/svg+xml file as a generic or issue attachment. The file retains the attacker-controlled Content-Type, and the asset-download endpoint creates a presigned URL with Content-Disposition: inline. In the default self-hosted MinIO deployment, the asset URL is served from the same origin as the Plane application, allowing embedded SVG JavaScript to execute in the application's security context. A victim, including a workspace administrator, who opens the link can have the session compromised through stored XSS, leading to account takeover. This issue is fixed in 1.4.0.
CVE-2026-105631 Alta · 7.5 CWE-639 05/10/2026
Plane: asset download endpoints scope file lookups to the workspace (not the project / published entity) → cross-project & unauthenticated private-file disclosure
Plane is an open-source project management tool. Prior to 1.4.0, WorkspaceFileAssetEndpoint.get and WorkspaceAssetDownloadEndpoint.get resolve FileAsset records within a workspace without checking membership in the asset's project, allowing a workspace member to download assets from private projects when the asset UUID is known. EntityAssetEndpoint.get is a separate public-anchor endpoint that grants AllowAny access and scopes the lookup only to the anchor's workspace rather than its published entity or project. An unauthenticated caller who knows a valid anchor and an asset UUID can therefore retrieve issue-description or comment-description assets belonging to unpublished or private projects in that workspace. This issue is fixed in 1.4.0.
CVE-2026-105629 Alta · 7.1 CWE-639 05/10/2026
Plane: Cross-Tenant Destructive IDOR: Estimate Point Deletion via Unscoped Primary Key Lookup
Plane is an open-source project management tool. Prior to 1.4.0, BulkEstimatePointEndpoint.destroy resolves an estimate point through a bare primary-key lookup without workspace, project, or estimate scoping. An administrator or member of one workspace can permanently delete an estimate point belonging to another workspace by supplying the target UUID in a URL under the attacker's own workspace. This creates a destructive cross-tenant IDOR. This issue is fixed in 1.4.0.
CVE-2026-105628 Alta · 7.6 CWE-918 05/10/2026
Plane: OAuth Avatar Redirect SSRF Leads to Internal Data Exfiltration via Static Asset Endpoint
Plane is an open-source project management tool. Prior to 1.4.0, Plane's OAuth avatar synchronization flow fetches avatar_url from provider user data through a server-side HTTP request without internal IP validation and follows redirects by default. An attacker can provide an avatar URL that redirects to an internal-only resource, such as a metadata endpoint, and Plane uploads the fetched response as a user avatar file. The object is then exposed through /api/assets/v2/static/{asset_id}/, allowing exfiltration of internally fetched content. This issue is fixed in 1.4.0.
CVE-2026-104979 Alta · 8.7 CWE-79 05/10/2026
Plane: Cross-tenant stored XSS in intake enables account takeover
Plane is an open-source project management tool. Prior to 1.4.0, IntakeIssuePublicViewSet.create in Plane v1.3.1 writes description_html through Issue.objects.create(...) without calling validate_html_content from nh3. Any authenticated user, including a new user with no workspace memberships, can plant arbitrary HTML in a project that has a published DeployBoard with intake enabled. When a project member or viewer of a closed intake item clicks the planted link, the TipTap \tjavascript: parser bypass and the target="_self" click handler execute JavaScript in the viewer's session and exfiltrate a long-lived API token. This issue is fixed in 1.4.0.
CVE-2026-104977 Alta · 7.7 CWE-918 05/10/2026
Plane: Incomplete fix of CVE-2026-27706 — SSRF still reachable on: missing is_blocked_ip (CGNAT/multicast) + DNS-rebinding TOCTOU
Plane is an open-source project management tool. Prior to 1.4.0, the fix for CVE-2026-27706 and GHSA-jcc6-f9v6-f7jw, an SSRF in work-item link unfurling shipped in v1.2.2, remains incomplete in the v1.3.1 GA release. Any authenticated project member can make the server fetch attacker-selected internal targets, including cloud metadata at 169.254.169.254, and read the response body returned as the link title or favicon. Complete hardening exists on main in PR 9163 but was not included in an earlier released tag. This issue is fixed in 1.4.0.
CVE-2026-104978 Alta · 8.2 CWE-863 05/10/2026
Plane: Invitation Hijack in Project Join Flow via Missing Authorization and Email-Only Acceptance
Plane is an open-source project management tool. Prior to 1.4.0, Plane's project invitation list endpoint is accessible to any authenticated user who knows the workspace slug and project ID, while the public project invitation join endpoint accepts an invitation based only on a submitted email address. When a pending invitation targets an email address that has not registered with Plane, an attacker can enumerate the invitation, register an account using the invited email without mailbox verification, and accept the invitation. The attacker-controlled account is then added to the target workspace and project. This issue is fixed in 1.4.0.
CVE-2026-104975 Alta · 7.1 CWE-639 05/10/2026
Plane: Cross-tenant asset authorization bypass in Plane Spaces public-board endpoints
Plane is an open-source project management tool. Prior to 1.4.0, Plane's dashboard asset endpoints in plane/app/views/asset/v2.py were remediated for two cross-tenant asset IDORs, CVE-2026-27705 and CVE-2026-46558. Those fixes added a membership check and project_id and workspace__slug scoping to the asset endpoints in that file. The Spaces app in plane/space/views/asset.py serves related public-board operations under /api/public/ but was not remediated. Its EntityAssetEndpoint and AssetRestoreEndpoint resolve a DeployBoard from a public anchor and then read or modify FileAsset rows scoped only to the board's workspace, without a membership check or project_id constraint. An attacker can therefore read, overwrite, or restore assets across projects and workspaces. This issue is fixed in 1.4.0.
CVE-2026-104974 Alta · 8.1 CWE-284 05/10/2026
Plane: Disabled User Auto-Reactivation on Login
Plane is an open-source project management tool. Prior to 1.4.0, a user whose account has been deactivated by setting is_active=False can still log in with existing credentials. Successful authentication silently changes is_active back to True, reactivating the account without notifying the administrator. This issue is fixed in 1.4.0.