Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify exposed CoPilot webhook endpoint
-
DeliverySend POST with publicly known default header
-
ExploitBypass JWT via hardcoded fallback secret
-
ExecutionForward attacker COMMAND/ACTION/AGENT_ID to Wazuh manager
-
ImpactDisrupt endpoints and inject forged SOC alerts
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication required for critical functions
MITRE ATT&CK
1 technique across 1 tactic: Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitable when GRAYLOG_API_HEADER_VALUE and/or VELOCIRAPTOR_API_HEADER_VALUE are left unset or unchanged from the default shipped in |
| Impact | The signals are largely consistent and point to a genuine priority for anyone actually running SOCFortress CoPilot. The CVSS 9.4 vector (AV:N/AC:L/PR:N/UI:N) is credible: the gating secret is a constant hardcoded in the public source and shipped in |
| Exploit ScenarioDerived | A remote, unauthenticated attacker locates an internet-reachable CoPilot backend and sends POST /api/graylog/invoke carrying the publicly known default |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
Unauthenticated active-response invocation and alert injection affect SOCFortress CoPilot deployments prior to 0.1.76 that leave GRAYLOG_API_HEADER_VALUE or VELOCIRAPTOR_API_HEADER_VALUE unset or unchanged, because both webhook header validators fall back to the same public constant shipped in .env.example. A remote attacker who supplies that known header value bypasses the JWT authentication that gates every other API, reaching POST /api/graylog/invoke to forward attacker-chosen COMMAND, ACTION, VALUE and AGENT_ID to the configured Wazuh manager (without the command-enum validation enforced on the authenticated invocation route), and reaching the threshold and velo-sigma alert routes to forge alerts for arbitrary customer_code values and drive attacker-controlled OpenSearch queries. The vendor's own advisory reports a confirmed live proof of concept against the published copilot-backend image; no CISA KEV entry is recorded and no EPSS score was supplied, but the priority decision label is act_now given the default-deployment exposure. Active-response delivery additionally requires a configured reachable Wazuh manager, and deployments that independently changed both header secrets are not subject to this bypass.
RemediationAI
Vendor-released patch: upgrade to CoPilot 0.1.76, which makes verify_graylog_header and verify_velociraptor_header fail closed (the environment variable is read with no default and the request is denied with HTTP 403 when unset), empties the two placeholder values in .env.example, and constrains COMMAND to a bare script-name token shape on the Graylog schema. The changes are visible in PR https://github.com/socfortress/CoPilot/pull/939 and commit https://github.com/socfortress/CoPilot/commit/1b2c3f97243988301285b395ce4239769c66bd9e, with the advisory at https://github.com/socfortress/CoPilot/security/advisories/GHSA-x8gc-f8p4-frc2. For deployments that cannot upgrade immediately, the vendor's remediation guidance is to set GRAYLOG_API_HEADER_VALUE and VELOCIRAPTOR_API_HEADER_VALUE to unique random values (for example from openssl rand -hex 32) instead of the shipped constant - note that pre-fix code still accepts an unset variable via the hardcoded fallback, so the variables must be explicitly populated, not merely removed from configuration - and to restrict network reachability of the /api/graylog/invoke and /api/incidents/alerts/create/* endpoints to trusted webhook senders; the trade-off is that any legitimate Graylog or Velociraptor integration must be updated with the new header value at the same time, and restricting network paths may break collectors that share a network segment.
Affected VersionsENISA
Affected Packages
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
CoPilot is a SOC platform that aggregates security operations tooling, and its backend is a FastAPI/Python service where normal API endpoints require JWT authentication. Two webhook entry points instead authenticate solely on a static shared header: verify_graylog_header in backend/app/active_response/routes/graylog.py compared the Graylog header against os.getenv("GRAYLOG_API_HEADER_VALUE", "ab73de7a-6f61-4dde-87cd-3af5175a7281"), and verify_velociraptor_header in backend/app/incidents/routes/incident_alert.py did the same for the Velociraptor header against VELOCIRAPTOR_API_HEADER_VALUE with the identical fallback. .env.example shipped both variables set to that same constant, so following documented setup produced a publicly known secret. This is CWE-306 (Missing Authentication for Critical Function) compounded by CWE-798 (Use of Hard-coded Credentials) per the advisory. The gray log handler built the Wazuh active-response payload directly from request fields (COMMAND concatenated with "0", ACTION and VALUE placed in the alert object, AGENT_ID used in agents_list) and issued a PUT to /active-response on the Wazuh manager, skipping the ActiveResponsesSupported enum check that the JWT-protected /api/active_response/invoke route enforces. The threshold and velo-sigma handlers accept alert payloads keyed by customer_code and build OpenSearch queries from them. The fix makes both validators fail closed: the environment variable is read with no default and a 403 is returned when it is unset, mirroring verify_grafana_header, plus a regex constraint (bare script names of letters, digits, underscore or hyphen, max 64 chars) is applied to COMMAND in the Graylog schema.
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
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:H
Publicly hardcoded default header means effectively no authentication (PR:N) over the network (AV:N/AC:L); impact is high integrity/availability of defensive controls with only limited confidentiality (C:L).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
SOCFortress CoPilot focuses on providing a single pane of glass for all your security operations needs. Prior to 0.1.76, verify_graylog_header in backend/app/active_response/routes/graylog.py and verify_velociraptor_header in backend/app/incidents/routes/incident_alert.py authenticate webhooks against GRAYLOG_API_HEADER_VALUE and VELOCIRAPTOR_API_HEADER_VALUE with the same publicly hardcoded fallback. The same default is shipped in .env.example. Deployments that leave either setting unset or unchanged permit an anonymous caller with the known header value to bypass the JWT authentication required by normal APIs. POST /api/graylog/invoke forwards attacker-selected COMMAND, ACTION, VALUE and AGENT_ID to the configured Wazuh manager without the command-enum validation of the authenticated invocation route, allowing active-response scripts to disrupt endpoints and manipulate defensive controls. POST /api/incidents/alerts/create/threshold and POST /api/incidents/alerts/create/velo-sigma accept forged alerts for arbitrary customer_code values and drive attacker-controlled OpenSearch queries. Active-response delivery requires a configured reachable Wazuh manager. Deployments with independently changed header secrets are not subject to this default-secret bypass. This issue is fixed in version 0.1.76.
Technical POC Analysis
CWE-306: Missing Authentication for Critical Function, caused by a hard-coded fallback secret - CWE-798.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
CVE-2026-61729 is a critical (CVSS 9.4) unauthenticated vulnerability in SOCFortress CoPilot deployments prior to 0.1.76, enabling remote attackers to bypass authentication and execute arbitrary active-response commands or inject forged alerts. This directly threatens the integrity and availability of security operations for any customer running the affected image with misconfigured webhook secrets, and could be leveraged to disrupt incident response or poison monitoring data across the organization.
No vendor-released patch identified at time of analysis. Interim mitigation: set unique, non-default values for GRAYLOG_API_HEADER_VALUE and VELOCIRAPTOR_API_HEADER_VALUE, and restrict network access to the Copilot API to trusted IPs only.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Authentication bypass in SOCFortress CoPilot versions prior to 0.1.57 allows remote unauthenticated attackers to forge a
Arbitrary host file write as root in SOCFortress CoPilot prior to 0.1.77: the ScoutSuite GCP report upload endpoint acce
Stored cross-site scripting in SOCFortress CoPilot lets any authenticated portal user, including the lowest-privilege cu
Unauthenticated disclosure of cloud credentials and audit data in SOCFortress CoPilot stems from the `/scoutsuite-report
Stored server-side template injection in SOCFortress CoPilot before 0.1.76 allows a customer_user - the lowest-privilege
Cross-tenant object-store writes in SOCFortress CoPilot before 0.1.76 let any authenticated customer_user (customer-port
Unauthenticated attackers can install detection-suppression rules in SOCFortress CoPilot deployments before 0.1.77 becau
Command injection in Microsoft Copilot allows an attacker to disclose confidential information when a victim invokes Cop
EUVD-2026-113994
NVD
CVE.org
EPSS
GitHub
Exploit-DB