/

CVE-2026-110621

Severity:

HIGH RISK

(8.8)

Missing Authorization (CWE-862) in Swetrix Cloud Projects

CVE-2026-110621

Deferred

Vulnerability type

Category:

Broken Access Control

CWE:

CWE-862

Impact:

Unauthorized project access, modification, and deletion

Severity:

HIGH RISK

(8.8)

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

Swetrix Cloud contains a missing authorization vulnerability in ProjectController.addProject that may allow an authenticated user to move another user's project into an organisation they control. Once associated with that organisation, the attacker may be able to read analytics, change project settings, or delete the project when they know its public tracking ID.

Swetrix Cloud contains a missing authorization vulnerability in ProjectController.addProject that may allow an authenticated user to move another user's project into an organisation they control. Once associated with that organisation, the attacker may be able to read analytics, change project settings, or delete the project when they know its public tracking ID.

Affected context

The issue occurs in Swetrix Cloud deployments where the project-adding workflow accepts a public tracking ID but does not sufficiently verify that the requesting user is authorized to manage the referenced project. It is relevant to deployments using the affected project-controller behavior and may expose projects whose identifiers can be obtained or inferred.

The issue occurs in Swetrix Cloud deployments where the project-adding workflow accepts a public tracking ID but does not sufficiently verify that the requesting user is authorized to manage the referenced project. It is relevant to deployments using the affected project-controller behavior and may expose projects whose identifiers can be obtained or inferred.

Exploit preconditions

  • Attack surface: Authenticated project-management functionality
  • Required access: A valid user account capable of creating or managing an organisation
  • Trigger point: The ProjectController.addProject operation when associating a project with an organisation
  • Required information: The victim project's public tracking ID
  • Why exploitation is possible: The operation may validate project identification without enforcing ownership or equivalent authorization for the referenced project
  • Attack surface: Authenticated project-management functionality
  • Required access: A valid user account capable of creating or managing an organisation
  • Trigger point: The ProjectController.addProject operation when associating a project with an organisation
  • Required information: The victim project's public tracking ID
  • Why exploitation is possible: The operation may validate project identification without enforcing ownership or equivalent authorization for the referenced project

Why this happens

The underlying bug is an authorization check failure mapped to CWE-862: Missing Authorization. The project-association workflow trusts a user-controlled project identifier and permits an authenticated principal to alter project ownership or organisation membership without first verifying that the principal has the required rights over that project. This represents an insecure separation between object lookup and object-level permission enforcement.

The underlying bug is an authorization check failure mapped to CWE-862: Missing Authorization. The project-association workflow trusts a user-controlled project identifier and permits an authenticated principal to alter project ownership or organisation membership without first verifying that the principal has the required rights over that project. This represents an insecure separation between object lookup and object-level permission enforcement.

Potential impact

  • An attacker may gain access to project analytics
  • Project settings could be changed without the owner's approval
  • A project may be moved into an attacker-controlled organisation
  • Project data or configuration could be deleted
  • Organizations may experience loss of confidentiality, integrity, or availability
  • An attacker may gain access to project analytics
  • Project settings could be changed without the owner's approval
  • A project may be moved into an attacker-controlled organisation
  • Project data or configuration could be deleted
  • Organizations may experience loss of confidentiality, integrity, or availability

General mitigation guidance

Mitigation generally focuses on enforcing object-level authorization at every project-management boundary.

Common defensive patterns include:

  • Verify project ownership or an explicitly delegated permission before changing organisation membership
  • Bind authorization decisions to the authenticated principal and the target project, not only to the supplied identifier
  • Apply deny-by-default access control and use narrowly scoped organisation roles
  • Recheck authorization on server-side mutation endpoints rather than relying on client-side controls
  • Minimize the sensitivity and predictability of identifiers where practical, while treating public identifiers as non-secret
  • Record and review project reassignment, settings changes, and deletion events

Mitigation generally focuses on enforcing object-level authorization at every project-management boundary.

Common defensive patterns include:

  • Verify project ownership or an explicitly delegated permission before changing organisation membership
  • Bind authorization decisions to the authenticated principal and the target project, not only to the supplied identifier
  • Apply deny-by-default access control and use narrowly scoped organisation roles
  • Recheck authorization on server-side mutation endpoints rather than relying on client-side controls
  • Minimize the sensitivity and predictability of identifiers where practical, while treating public identifiers as non-secret
  • Record and review project reassignment, settings changes, and deletion events

How teams detect issues like this

Organizations commonly detect missing-authorization issues through:

  • Static analysis and policy rules for controller methods that mutate resources without nearby authorization checks
  • Code review of every endpoint accepting resource IDs, tracking IDs, or organisation identifiers
  • Tests that attempt cross-user and cross-organisation access to read, update, move, and delete operations
  • Authorization policy enforcement at the service or data-access layer
  • Audit-log monitoring for unexpected project ownership or organisation changes
  • Automated security testing that verifies object-level access control across tenant boundaries

Organizations commonly detect missing-authorization issues through:

  • Static analysis and policy rules for controller methods that mutate resources without nearby authorization checks
  • Code review of every endpoint accepting resource IDs, tracking IDs, or organisation identifiers
  • Tests that attempt cross-user and cross-organisation access to read, update, move, and delete operations
  • Authorization policy enforcement at the service or data-access layer
  • Audit-log monitoring for unexpected project ownership or organisation changes
  • Automated security testing that verifies object-level access control across tenant boundaries

Sources

SourceLink
github.comgithub.com/Swetrix/swetrix/blob/v5.0.3/backend/apps/cloud/src/project/project.controller.ts#L888-L920
github.comgithub.com/Swetrix/swetrix/commit/63eb76edcb446402ad1db5ff870920773f5ff588
github.comgithub.com/Swetrix/swetrix/issues/477
github.comgithub.com/Swetrix/swetrix/releases/tag/v5.1.0
vulncheck.comvulncheck.com/advisories/swetrix-cloud-before-5.1.0-missing-authorization-via-post-project-organisation-orgid

Frequently asked

questions

It may be exploitable through the application's authenticated project-management interface when the attacker can submit a victim project's public tracking ID.

The attacker generally needs an authenticated account with the ability to create or manage an organisation. They do not necessarily need administrative access to the victim's organisation.

Enforce server-side, object-level authorization before allowing a project to be added to or moved between organisations. The check should confirm that the authenticated user has the required permission over the specific project.

Use deny-by-default authorization policies, test cross-tenant resource access, review all identifier-based mutation endpoints, and monitor sensitive ownership and organisation changes.

It may be exploitable through the application's authenticated project-management interface when the attacker can submit a victim project's public tracking ID.

The attacker generally needs an authenticated account with the ability to create or manage an organisation. They do not necessarily need administrative access to the victim's organisation.

Enforce server-side, object-level authorization before allowing a project to be added to or moved between organisations. The check should confirm that the authenticated user has the required permission over the specific project.

Use deny-by-default authorization policies, test cross-tenant resource access, review all identifier-based mutation endpoints, and monitor sensitive ownership and organisation changes.

Find out what's already
exploitable in your codebase.