Skip to main content

SOCFortress CoPilot CVE-2026-61739

| EUVDEUVD-2026-114005 HIGH
Improper Authentication (CWE-287)
2026-10-30 GitHub_M
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Send POST with arbitrary Bearer header
  2. Delivery
    Sentinel-string token result accepted as user
  3. Exploit
    Create null-tenant global suppression rule
  4. Execution
    Matching Velociraptor Sigma alerts dropped at ingest
  5. Impact
    SOC blinded to attacker activity platform-wide

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication mechanism validation
MITRE ATT&CK

2 techniques across 2 tactics: Defense Evasion, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

For the unauthenticated create: the target must run SOCFortress CoPilot prior to 0.1.77 with the backend API (e.g. ghcr.io/socfortress/copilot-backend) network-reachable; the attacker must include any Authorization: Bearer header (any invalid, expired or forged value suffices, because OAuth2PasswordBearer auto_error=True requires only header presence and decode_token never raises) - no valid account is needed. Setting customer_code=null makes the rule apply across all tenants. The suppression only has effect where the deployment actually ingests Velociraptor Sigma alerts via process_sigma_alert, and a rule only drops alerts that match its channel/title/field criteria, so impact depends on the attacker crafting a match for the activity they want hidden. The separate read/list/update/delete/toggle tampering path is limited by requiring a valid authenticated token (any role down to customer_user via get_current_user), but with no role or tenant restriction.

Impact

This is a genuine authorization/authentication-bypass issue (CWE-287 plus CWE-862 per the GHSA), not a severity-inflated finding. The supplied CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N, 7.5) is internally consistent with the source evidence: the create endpoint is reachable over the network with no valid credentials because OAuth2PasswordBearer only enforces that an Authorization: Bearer header is present, while decode_token returns the sentinel strings 'Invalid token'/'Expired signature' instead of raising, and return_username_for_logging passes them through - so PR:N and AC:L are justified and the impact is squarely integrity (detection-suppression rules created/modified/deleted). No KEV entry and no EPSS score are present in the input, so there is no quantitative exploitation-probability or confirmed-in-the-wild signal to weigh; the vuln.today Decision label is 'this_week', below act_now/emergency. Against that, the GHSA advisory publishes a concrete two-request proof-of-concept with observed server output (created_by='Invalid token'), so exploitability is demonstrated even though active exploitation is not confirmed. The principal signals therefore agree on a real, promptly-actionable defense-evasion weakness in a security product, tempered only by the product's limited deployment footprint. Note one nuance the NVD vector flattens: the fully-unauthenticated path is the create endpoint (pure integrity), whereas the confidentiality exposure (enumerating detection-tuning data) and the cross-tenant global suppression via a null customer_code require an authenticated low-privilege customer_user - the NVD vector's C:N reflects the unauth attack, not the auth-gated information leak.

Exploit ScenarioDerived

An attacker with only network reachability to the CoPilot API sends a single POST to /api/incidents/alerts/create/velo-sigma/exclusion carrying any arbitrary Bearer header, creating a suppression rule with customer_code=null that matches their own tooling by channel, title or field regex; subsequent Velociraptor Sigma alerts for that activity are silently dropped before incident creation across every tenant. The GHSA advisory includes a working proof-of-concept demonstrating exactly this with two curl requests and the server's response showing created_by='Invalid token'. A low-privilege customer_user can additionally enumerate, modify, toggle or delete legitimate exclusion rules.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 30, 2026

Unauthenticated attackers can install detection-suppression rules in SOCFortress CoPilot deployments before 0.1.77 because the Velociraptor Sigma exclusion endpoints never actually validate the bearer token they receive: an arbitrary, expired or forged value is decoded into a sentinel string ('Invalid token' / 'Expired signature') that is stored as the rule's creator instead of rejecting the request. A rule created with a null customer_code applies to every tenant, so matching Sigma alerts are silently dropped by process_sigma_alert before an incident is ever created, and any authenticated user down to the lowest-privilege customer_user role can additionally list, read, update, toggle and delete every exclusion because those routes carry no scope or tenant check. Version 0.1.77 fixes both paths. No confirmed active exploitation (not in CISA KEV) is reported, but the vendor advisory publishes a detailed two-step proof-of-concept reference for the unauthenticated create path that has not been independently validated here as working exploit code.

RemediationAI

Vendor-released patch: 0.1.77 - upgrade SOCFortress CoPilot (and the copilot-backend container image) to 0.1.77 or later, which is the release referenced at https://github.com/socfortress/CoPilot/tree/v0.1.77 and delivered through PR https://github.com/socfortress/CoPilot/pull/942 / commit d22f80f9086ef5e68baa3a9414bff7d7621a14a8; the advisory is https://github.com/socfortress/CoPilot/security/advisories/GHSA-c6jc-rh4j-wg88. The patch adds Security(require_any_scope('admin','analyst')) dependencies to the create, get, list, update, delete and toggle exclusion routes, replaces the non-validating return_username_for_logging dependency on the create handler with the scope-checking dependency so created_by comes from a validated caller, and the advisory additionally recommends making decode_token fail closed by raising instead of returning sentinel strings and scoping exclusions to the caller's tenant, rejecting a null customer_code from non-admin callers. Until the upgrade is deployed, restrict network reachability of the backend API - particularly the /api/incidents/alerts/create/velo-sigma/exclusion and /velo-sigma/exclusion/{exclusion_id}/toggle paths - to trusted management networks at a reverse proxy or firewall, accepting that this also blocks legitimate analyst tuning traffic through those endpoints, and audit existing exclusion rules for entries whose created_by value is the sentinel 'Invalid token' or 'Expired signature' or whose customer_code is null, reviewing or removing any that do not correspond to a legitimate SOC decision (reviewing rule definitions exposes detection-tuning posture, so perform it with privileged access). Note that suppression only takes effect for deployments that ingest Velociraptor Sigma alerts through process_sigma_alert.

Affected VersionsENISA

CoPilot < 0.1.77

Affected Packages

euvd copilot fix: 0.1.77

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

SOCFortress CoPilot is a Python/FastAPI backend (published as ghcr.io/socfortress/copilot-backend) whose analyst-facing routes are normally protected by a require_any_scope('admin','analyst') dependency. The Velociraptor Sigma exclusion CRUD routes in backend/app/incidents/routes/incident_alert.py were written without that dependency, and the create handler relied on return_username_for_logging, which calls decode_token in backend/app/auth/utils.py. decode_token catches jwt.ExpiredSignatureError and jwt.InvalidTokenError and returns the ordinary strings 'Expired signature' or 'Invalid token' rather than raising, and return_username_for_logging passes that return value straight through, so a failing decode is indistinguishable from a successful lookup. Because the OAuth2PasswordBearer scheme is configured with auto_error=True, the only enforced prerequisite is the presence of an Authorization: Bearer header - its contents are never checked - and the handler proceeds to persist the rule with created_by set to the sentinel string. This is CWE-287 (improper authentication) combined with CWE-862 (missing authorization) per the GHSA; the sibling routes in the same file use Security(...require_any_scope(...)), so the omission is an inconsistency rather than intended design. Impact is realised on the ingest path: process_sigma_alert in backend/app/incidents/services/velo_sigma.py calls check_exclusions and short-circuits alert creation when a rule matches on channel, title or field regex, and a rule with a null customer_code matches across all tenants. The read/update/delete/toggle routes use get_current_user without role checks, so any authenticated account, including customer_user, can manage all exclusions. The CPE cpe:2.3:a:socfortress:copilot:*:*:*:*:*:*:*:* covers all releases prior to the fixed 0.1.77.

Know when Copilot gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
vuln.today AI 7.5 HIGH

Unauthenticated network-reachable create endpoint accepts any Bearer header (PR:N, AC:L); impact is integrity of detection-suppression config (I:H); confidentiality leak is auth-gated so C:N for the unauth vector.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Oct 30, 2026 - 16:03 EUVD
CVE Published
Oct 30, 2026 - 14:50 cve.org
HIGH 7.5

DescriptionCVE.org

SOCFortress CoPilot focuses on providing a single pane of glass for all your security operations needs. Prior to 0.1.77, the Velociraptor Sigma exclusion-management endpoints in backend/app/incidents/routes/incident_alert.py omit role and tenant authorization, and POST /api/incidents/alerts/create/velo-sigma/exclusion does not validate credentials. Its return_username_for_logging dependency in backend/app/auth/utils.py calls decode_token, which returns ordinary Invalid token or Expired signature strings on failure, and the dependency passes these strings through instead of rejecting the request. A Bearer header is required, but an arbitrary invalid, expired or forged value can create a suppression rule without a valid account. The collection GET at /create/velo-sigma/exclusion lists exclusions; the read, update and delete routes under /create/velo-sigma/exclusion/{exclusion_id}, and the /velo-sigma/exclusion/{exclusion_id}/toggle route, use get_current_user without role checks, permitting any authenticated customer_user to manage every exclusion. In backend/app/incidents/services/velo_sigma.py, process_sigma_alert calls check_exclusions and drops matching enabled alerts before incident creation. A null customer_code applies a rule across all tenants. Attackers can suppress detections platform-wide through channel, title or field matching, while low-privilege accounts can enumerate detection-tuning data and modify, disable or delete legitimate exclusions. This issue is fixed in version 0.1.77.

Technical POC Analysis

CWE-287 (Improper Authentication), with a secondary CWE-862 (Missing Authorization) on the management routes.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

CVE-2026-61739 is a high-severity vulnerability in SOCFortress CoPilot versions before 0.1.77 that allows unauthenticated attackers to silently disable security detection rules across all tenants. This directly undermines the SOC's ability to detect threats, exposing the organization to undetected intrusions and potential data breaches, while also enabling low-privilege users to tamper with exclusions. Leadership must treat this as a critical gap in security monitoring and act swiftly to mitigate risk.

Business Impact: High
Compensating Controls

Apply vendor patch: 0.1.77

Threat Intelligence Overview

EPSS Score
0.4%
Top 69% exploitable
Prevalence
Low
niche open-source SOC/SIEM platform, limited production deployment footprint
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy