/

CVE-2026-59979

Severity:

HIGH RISK

(8.3)

Broken Access Control (CWE-639) in YosemiteCrew APIs

CVE-2026-59979

Deferred

Vulnerability type

Category:

Broken Access Control

CWE:

CWE-639, CWE-862

Impact:

Cross-organization data exposure and unauthorized modification or deletion

Severity:

HIGH RISK

(8.3)

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

YosemiteCrew service and PMS task-library/template routes do not consistently enforce organization membership, roles, or permissions. An authenticated platform user may modify or delete records belonging to another organization, while service records may also be readable without authentication.

YosemiteCrew service and PMS task-library/template routes do not consistently enforce organization membership, roles, or permissions. An authenticated platform user may modify or delete records belonging to another organization, while service records may also be readable without authentication.

Affected context

The issue occurs in affected YosemiteCrew main and development snapshots where service and PMS task-management routes rely on authentication alone or omit authentication entirely. Service lookups use a global record identifier without an organization filter, and related task-library and template operations lack the organization and role checks applied by protected sibling routes.

The issue occurs in affected YosemiteCrew main and development snapshots where service and PMS task-management routes rely on authentication alone or omit authentication entirely. Service lookups use a global record identifier without an organization filter, and related task-library and template operations lack the organization and role checks applied by protected sibling routes.

Exploit preconditions

  • Attack surface: Service, PMS task-library, and PMS template API routes
  • Required access: A registered platform account for write operations; no authentication may be required for affected service reads
  • Trigger point: Requests to exposed service or task-management endpoints using identifiers for records outside the caller's organization
  • Why exploitation is possible: Route-level authentication and authorization middleware do not consistently enforce organization scope, permissions, or role restrictions, and service retrieval does not constrain the database query by organization
  • Attack surface: Service, PMS task-library, and PMS template API routes
  • Required access: A registered platform account for write operations; no authentication may be required for affected service reads
  • Trigger point: Requests to exposed service or task-management endpoints using identifiers for records outside the caller's organization
  • Why exploitation is possible: Route-level authentication and authorization middleware do not consistently enforce organization scope, permissions, or role restrictions, and service retrieval does not constrain the database query by organization

Why this happens

The underlying flaw is an authorization design failure in which authentication establishes a user identity but does not establish that the user may access a specific organization or resource. Missing permission middleware combined with identifier-based lookups that omit tenant or organization predicates can allow cross-tenant access. This maps primarily to CWE-639, Authorization Bypass Through User-Controlled Key, and also to CWE-862, Missing Authorization.

The underlying flaw is an authorization design failure in which authentication establishes a user identity but does not establish that the user may access a specific organization or resource. Missing permission middleware combined with identifier-based lookups that omit tenant or organization predicates can allow cross-tenant access. This maps primarily to CWE-639, Authorization Bypass Through User-Controlled Key, and also to CWE-862, Missing Authorization.

Potential impact

  • An attacker may read service catalogue records without authentication.
  • An authenticated user may modify or delete another organization's services.
  • An attacker may alter or remove PMS task-library and template data.
  • Bookings, billing workflows, or service availability could be disrupted.
  • Cross-organization data exposure or integrity loss could occur.
  • An attacker may read service catalogue records without authentication.
  • An authenticated user may modify or delete another organization's services.
  • An attacker may alter or remove PMS task-library and template data.
  • Bookings, billing workflows, or service availability could be disrupted.
  • Cross-organization data exposure or integrity loss could occur.

General mitigation guidance

Mitigation generally centers on enforcing authorization at every route and

service-layer operation, rather than relying on authentication alone.

Common defensive patterns include:

  • Apply organization-scoped permission and role checks consistently to read,

create, update, and delete operations.

  • Derive organization scope from the authenticated session or trusted server

context instead of accepting it from client input.

  • Include organization or tenant predicates in every resource query and

mutation, including lookups by global identifiers.

  • Use deny-by-default authorization for newly added routes and require explicit

policy coverage for each operation.

  • Separate patient or companion-app capabilities from administrative

service-catalogue and template-management privileges.

  • Return generic authorization failures without revealing whether records in

another organization exist.

Mitigation generally centers on enforcing authorization at every route and

service-layer operation, rather than relying on authentication alone.

Common defensive patterns include:

  • Apply organization-scoped permission and role checks consistently to read,

create, update, and delete operations.

  • Derive organization scope from the authenticated session or trusted server

context instead of accepting it from client input.

  • Include organization or tenant predicates in every resource query and

mutation, including lookups by global identifiers.

  • Use deny-by-default authorization for newly added routes and require explicit

policy coverage for each operation.

  • Separate patient or companion-app capabilities from administrative

service-catalogue and template-management privileges.

  • Return generic authorization failures without revealing whether records in

another organization exist.

How teams detect issues like this

Organizations can identify similar issues through:

  • Static analysis and route inventory checks for endpoints lacking

authorization middleware.

  • Code review searches for authentication-only routes that perform writes or

expose tenant-owned data.

  • Database query review for resource lookups using identifiers without

organization or tenant predicates.

  • Integration tests that attempt cross-organization reads, updates, and

deletes with low-privilege accounts.

  • API policy enforcement that requires an authorization decision for every

protected resource operation.

  • Automated code review tools that flag missing authorization checks and

unscoped data access patterns.

Organizations can identify similar issues through:

  • Static analysis and route inventory checks for endpoints lacking

authorization middleware.

  • Code review searches for authentication-only routes that perform writes or

expose tenant-owned data.

  • Database query review for resource lookups using identifiers without

organization or tenant predicates.

  • Integration tests that attempt cross-organization reads, updates, and

deletes with low-privilege accounts.

  • API policy enforcement that requires an authorization decision for every

protected resource operation.

  • Automated code review tools that flag missing authorization checks and

unscoped data access patterns.

Sources

SourceLink
github.comgithub.com/YosemiteCrew/Yosemite-Crew/security/advisories/GHSA-256m-gg99-4274

Frequently asked

questions

Yes. The affected functionality is exposed through API routes, so exploitation

may be possible remotely when the deployment is reachable and the caller can

submit requests.

Write operations generally require any registered platform account, including

lower-privilege patient or companion-app accounts. The affected service read

route may not require authentication.

Enforce organization-scoped authorization and role or permission checks on

every affected operation, and apply the organization constraint in the

underlying data query or mutation.

Use deny-by-default route policies, centralize authorization decisions, test

cross-tenant access with low-privilege identities, and require authorization

coverage during API design and code review.

Yes. The affected functionality is exposed through API routes, so exploitation

may be possible remotely when the deployment is reachable and the caller can

submit requests.

Write operations generally require any registered platform account, including

lower-privilege patient or companion-app accounts. The affected service read

route may not require authentication.

Enforce organization-scoped authorization and role or permission checks on

every affected operation, and apply the organization constraint in the

underlying data query or mutation.

Use deny-by-default route policies, centralize authorization decisions, test

cross-tenant access with low-privilege identities, and require authorization

coverage during API design and code review.

Find out what's already
exploitable in your codebase.