/

CVE-2025-71433

Severity:

HIGH RISK

(7.5)

Missing Authorization (CWE-862) in Kaneo Workspaces

CVE-2025-71433

Deferred

Vulnerability type

Category:

Missing Authorization

CWE:

CWE-862

Impact:

Unauthorized cross-workspace access and modification

Severity:

HIGH RISK

(7.5)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Kaneo contains a missing authorization vulnerability in API routes that accept project, task, label, or workspace identifiers without consistently verifying workspace membership. An authenticated user who obtains valid identifiers may access other workspaces and read, modify, or delete associated content.

Kaneo contains a missing authorization vulnerability in API routes that accept project, task, label, or workspace identifiers without consistently verifying workspace membership. An authenticated user who obtains valid identifiers may access other workspaces and read, modify, or delete associated content.

Affected context

The issue occurs in Kaneo API functionality that operates on workspace-related resources identified by client-supplied values. It becomes risky when an authenticated user can obtain identifiers through shared links, application responses, or other observable sources, while the corresponding route does not enforce membership or ownership checks.

The issue occurs in Kaneo API functionality that operates on workspace-related resources identified by client-supplied values. It becomes risky when an authenticated user can obtain identifiers through shared links, application responses, or other observable sources, while the corresponding route does not enforce membership or ownership checks.

Exploit preconditions

  • Attack surface: Authenticated Kaneo API routes handling workspace, project, task, label, or comment identifiers
  • Required access: A valid authenticated account and the ability to submit requests to affected routes
  • Trigger point: Supplying an identifier associated with a resource outside the user's authorized workspace
  • Why exploitation is possible: Some routes rely on object identifiers without consistently verifying the caller's workspace membership or resource-level permissions
  • Attack surface: Authenticated Kaneo API routes handling workspace, project, task, label, or comment identifiers
  • Required access: A valid authenticated account and the ability to submit requests to affected routes
  • Trigger point: Supplying an identifier associated with a resource outside the user's authorized workspace
  • Why exploitation is possible: Some routes rely on object identifiers without consistently verifying the caller's workspace membership or resource-level permissions

Why this happens

The underlying flaw is an authorization decision that does not adequately bind the requested resource to the authenticated user's permitted workspace. API handlers may retrieve or mutate objects based on client-supplied identifiers before performing effective membership or ownership validation. This behavior maps to CWE-862: Missing Authorization, because access-control enforcement is absent or incomplete for protected operations.

The underlying flaw is an authorization decision that does not adequately bind the requested resource to the authenticated user's permitted workspace. API handlers may retrieve or mutate objects based on client-supplied identifiers before performing effective membership or ownership validation. This behavior maps to CWE-862: Missing Authorization, because access-control enforcement is absent or incomplete for protected operations.

Potential impact

  • An authenticated user may read projects, tasks, labels, comments, or workspace search results outside their authorized workspace
  • An attacker could modify or delete tasks, labels, and comments
  • Confidential workspace information could be exposed
  • Project integrity and collaboration workflows may be disrupted
  • Unauthorized changes could support further abuse of organizational data
  • An authenticated user may read projects, tasks, labels, comments, or workspace search results outside their authorized workspace
  • An attacker could modify or delete tasks, labels, and comments
  • Confidential workspace information could be exposed
  • Project integrity and collaboration workflows may be disrupted
  • Unauthorized changes could support further abuse of organizational data

General mitigation guidance

Mitigation generally focuses on enforcing authorization at every resource access and mutation boundary.

Common defensive patterns include:

  • Deriving the effective workspace from the authenticated session rather than trusting client-supplied scope identifiers
  • Applying centralized, deny-by-default authorization checks to every project, task, label, comment, and search operation
  • Verifying workspace membership, ownership, and action-specific permissions before retrieval or mutation
  • Avoiding responses that disclose resource existence across authorization boundaries
  • Using least-privilege roles and separating read, update, and delete permissions
  • Treating shared links and object identifiers as untrusted references rather than proof of authorization

Mitigation generally focuses on enforcing authorization at every resource access and mutation boundary.

Common defensive patterns include:

  • Deriving the effective workspace from the authenticated session rather than trusting client-supplied scope identifiers
  • Applying centralized, deny-by-default authorization checks to every project, task, label, comment, and search operation
  • Verifying workspace membership, ownership, and action-specific permissions before retrieval or mutation
  • Avoiding responses that disclose resource existence across authorization boundaries
  • Using least-privilege roles and separating read, update, and delete permissions
  • Treating shared links and object identifiers as untrusted references rather than proof of authorization

How teams detect issues like this

Organizations can assess for missing authorization through:

  • Static analysis and code review searches for API handlers that use client-supplied identifiers without nearby authorization checks
  • Review of data-access functions to confirm that workspace or tenant scope is applied in the query itself
  • Integration tests that access each resource type across users, roles, and workspaces
  • Negative tests confirming that unauthorized users receive consistent denial responses without resource metadata
  • API gateway or service policies requiring authenticated identity and explicit authorization decisions
  • Neutral automated application-security testing tools that exercise identifier substitution and cross-tenant access cases

Organizations can assess for missing authorization through:

  • Static analysis and code review searches for API handlers that use client-supplied identifiers without nearby authorization checks
  • Review of data-access functions to confirm that workspace or tenant scope is applied in the query itself
  • Integration tests that access each resource type across users, roles, and workspaces
  • Negative tests confirming that unauthorized users receive consistent denial responses without resource metadata
  • API gateway or service policies requiring authenticated identity and explicit authorization decisions
  • Neutral automated application-security testing tools that exercise identifier substitution and cross-tenant access cases

Sources

SourceLink
github.comgithub.com/usekaneo/kaneo/blob/v2.1.5/apps/api/src/task/index.ts#L252-L275
github.comgithub.com/usekaneo/kaneo/commit/6d3555e9c07ec7ce7f68477d669eec67fce33cc3
github.comgithub.com/usekaneo/kaneo/issues/521
github.comgithub.com/usekaneo/kaneo/releases/tag/v2.1.6
vulncheck.comvulncheck.com/advisories/kaneo-before-2.1.6-missing-authorization-allows-cross-workspace-data-access

Frequently asked

questions

Yes, it may be exploitable through network-accessible Kaneo API routes by an authenticated user, provided the user can obtain or infer identifiers for resources in another workspace.

The described issue requires authenticated access. The account may have ordinary workspace permissions; elevated administrative privileges are not necessarily required.

Enforce centralized, deny-by-default authorization for every resource operation, and verify workspace membership and action-specific permissions before returning or changing data.

Use server-side authorization checks tied to the authenticated identity, scope database queries to the authorized workspace, and maintain cross-workspace negative tests for all identifier-based API endpoints.

Yes, it may be exploitable through network-accessible Kaneo API routes by an authenticated user, provided the user can obtain or infer identifiers for resources in another workspace.

The described issue requires authenticated access. The account may have ordinary workspace permissions; elevated administrative privileges are not necessarily required.

Enforce centralized, deny-by-default authorization for every resource operation, and verify workspace membership and action-specific permissions before returning or changing data.

Use server-side authorization checks tied to the authenticated identity, scope database queries to the authorized workspace, and maintain cross-workspace negative tests for all identifier-based API endpoints.

Find out what's already
exploitable in your codebase.