/

CVE-2026-61739

Severity:

HIGH RISK

(7.5)

Broken Access Control (CWE-862) in CoPilot Sigma APIs

CVE-2026-61739

Deferred

Vulnerability type

Category:

Broken Access Control

CWE:

CWE-287, CWE-862

Impact:

Unauthorized Detection Suppression and Cross-Tenant Data Access

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

SOCFortress CoPilot before 0.1.77 fails to consistently enforce authentication, role, and tenant authorization on Velociraptor Sigma exclusion-management endpoints. An attacker may create, enumerate, modify, disable, or delete detection-suppression rules, potentially causing alerts to be dropped across one or more tenants.

SOCFortress CoPilot before 0.1.77 fails to consistently enforce authentication, role, and tenant authorization on Velociraptor Sigma exclusion-management endpoints. An attacker may create, enumerate, modify, disable, or delete detection-suppression rules, potentially causing alerts to be dropped across one or more tenants.

Affected context

The issue occurs in the CoPilot incident alert routes and Velociraptor Sigma exclusion service when endpoint authorization is incomplete or authentication failures are treated as ordinary username values. The affected operations include exclusion creation, listing, retrieval, updating, deletion, and toggling. Rules with a null customer code may apply beyond a single tenant, depending on deployment behavior.

The issue occurs in the CoPilot incident alert routes and Velociraptor Sigma exclusion service when endpoint authorization is incomplete or authentication failures are treated as ordinary username values. The affected operations include exclusion creation, listing, retrieval, updating, deletion, and toggling. Rules with a null customer code may apply beyond a single tenant, depending on deployment behavior.

Exploit preconditions

  • Attack surface: HTTP API endpoints under the Velociraptor Sigma exclusion-management routes
  • Required access: Exclusion creation may be reachable with an arbitrary Bearer value; other management operations generally require an authenticated low-privilege account
  • Trigger point: Requests to create or manage Sigma exclusion rules
  • Authorization weakness: Role and tenant checks are absent or insufficient on affected routes
  • Authentication weakness: Invalid, expired, or forged Bearer values may be passed through instead of being rejected
  • Why exploitation is possible: The service accepts caller-controlled requests without reliably proving identity, role, or tenant ownership before applying exclusion changes
  • Attack surface: HTTP API endpoints under the Velociraptor Sigma exclusion-management routes
  • Required access: Exclusion creation may be reachable with an arbitrary Bearer value; other management operations generally require an authenticated low-privilege account
  • Trigger point: Requests to create or manage Sigma exclusion rules
  • Authorization weakness: Role and tenant checks are absent or insufficient on affected routes
  • Authentication weakness: Invalid, expired, or forged Bearer values may be passed through instead of being rejected
  • Why exploitation is possible: The service accepts caller-controlled requests without reliably proving identity, role, or tenant ownership before applying exclusion changes

Why this happens

The underlying defect combines improper authentication handling with missing authorization enforcement. The token helper returns failure strings from token decoding, and the dependent endpoint treats those values as usable identity information instead of rejecting the request. In addition, affected routes rely on basic authentication dependencies without enforcing required roles or tenant ownership. These behaviors map to CWE-287, Improper Authentication, and CWE-862, Missing Authorization.

The underlying defect combines improper authentication handling with missing authorization enforcement. The token helper returns failure strings from token decoding, and the dependent endpoint treats those values as usable identity information instead of rejecting the request. In addition, affected routes rely on basic authentication dependencies without enforcing required roles or tenant ownership. These behaviors map to CWE-287, Improper Authentication, and CWE-862, Missing Authorization.

Potential impact

  • Attackers may create suppression rules without a valid account
  • Legitimate detections may be suppressed before incident creation
  • A rule may affect multiple tenants when tenant scoping is absent
  • Low-privilege users may enumerate detection-tuning information
  • Attackers may modify, disable, or delete legitimate exclusions
  • Security monitoring coverage and incident response effectiveness could be reduced
  • Attackers may create suppression rules without a valid account
  • Legitimate detections may be suppressed before incident creation
  • A rule may affect multiple tenants when tenant scoping is absent
  • Low-privilege users may enumerate detection-tuning information
  • Attackers may modify, disable, or delete legitimate exclusions
  • Security monitoring coverage and incident response effectiveness could be reduced

General mitigation guidance

Mitigation typically centers on fail-closed authentication and centralized, object-level authorization. Token-decoding failures should be treated as authentication failures, and every exclusion operation should verify the caller's role and ownership or tenant scope before processing. Tenant identifiers should be derived from trusted server-side identity context rather than accepted as unrestricted input, while secure-by-default behavior should prevent global rules unless explicitly authorized. Least-privilege service accounts, immutable audit records, and controlled administrative workflows can further limit the effect of unauthorized changes.

Mitigation typically centers on fail-closed authentication and centralized, object-level authorization. Token-decoding failures should be treated as authentication failures, and every exclusion operation should verify the caller's role and ownership or tenant scope before processing. Tenant identifiers should be derived from trusted server-side identity context rather than accepted as unrestricted input, while secure-by-default behavior should prevent global rules unless explicitly authorized. Least-privilege service accounts, immutable audit records, and controlled administrative workflows can further limit the effect of unauthorized changes.

How teams detect issues like this

Review code for authentication dependencies that return sentinel strings or other non-exception failure values, and for routes that invoke user lookup without role or tenant checks. Static analysis and code review should flag direct use of decoded token data, missing object-level authorization, and nullable tenant identifiers in security-sensitive operations. Monitor API logs for exclusion changes by unexpected principals, invalid Bearer headers, cross-tenant object access, global-scope rules, and unusual bursts of create, delete, or toggle activity. Policy enforcement can require authorization middleware and audit logging for all detection-configuration mutations.

Review code for authentication dependencies that return sentinel strings or other non-exception failure values, and for routes that invoke user lookup without role or tenant checks. Static analysis and code review should flag direct use of decoded token data, missing object-level authorization, and nullable tenant identifiers in security-sensitive operations. Monitor API logs for exclusion changes by unexpected principals, invalid Bearer headers, cross-tenant object access, global-scope rules, and unusual bursts of create, delete, or toggle activity. Policy enforcement can require authorization middleware and audit logging for all detection-configuration mutations.

Sources

SourceLink
github.comgithub.com/socfortress/CoPilot/commit/d22f80f9086ef5e68baa3a9414bff7d7621a14a8
github.comgithub.com/socfortress/CoPilot/pull/942
github.comgithub.com/socfortress/CoPilot/security/advisories/GHSA-c6jc-rh4j-wg88
github.comgithub.com/socfortress/CoPilot/tree/v0.1.77

Frequently asked

questions

The exclusion-creation path may accept an arbitrary invalid, expired, or forged Bearer value because token-decoding failures are not rejected. Other management operations may still require an authenticated low-privilege account.

Depending on deployment and route behavior, a customer user may enumerate exclusions and modify, disable, or delete rules outside the user's authorized tenant or role scope.

Fail closed when token validation fails, then enforce centralized role-based and tenant-aware authorization for every read and mutation operation.

Use trusted server-side identity and tenant context, require object-level authorization, prohibit unrestricted global scope, and continuously audit security-sensitive API actions.

The exclusion-creation path may accept an arbitrary invalid, expired, or forged Bearer value because token-decoding failures are not rejected. Other management operations may still require an authenticated low-privilege account.

Depending on deployment and route behavior, a customer user may enumerate exclusions and modify, disable, or delete rules outside the user's authorized tenant or role scope.

Fail closed when token validation fails, then enforce centralized role-based and tenant-aware authorization for every read and mutation operation.

Use trusted server-side identity and tenant context, require object-level authorization, prohibit unrestricted global scope, and continuously audit security-sensitive API actions.

Find out what's already
exploitable in your codebase.