Skip to main content

SOCFortress CoPilot EUVDEUVD-2026-114084

| CVE-2026-61708 HIGH
Improper Access Control (CWE-284)
2026-10-30 GitHub_M
8.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as low-privilege customer_user
  2. Delivery
    POST crafted upload to /api/agent_data_store/upload with chosen bucket_name and object_name
  3. Exploit
    Overwrite cross-tenant sysmon config or report template
  4. Execution
    Poisoned template rendered server-side
  5. Impact
    Achieve code execution and endpoint telemetry blinding

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Access control enforcement
MITRE ATT&CK

1 technique across 1 tactic: Defense Evasion

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

Exploitation Conditions

Requires an authenticated customer_user (customer-portal) account - the lowest-privilege role - on a CoPilot instance prior to 0.1.76; no admin or analyst rights are needed. The vulnerable route POST /api/agent_data_store/upload is exposed to this role by default (no special non-default configuration is required), and the only server-side check is that the uploaded filename is non-empty, with no bucket allow-list, no per-tenant prefix enforcement, no ownership check, and no content-type/extension validation. The limiting factor is that the attacker must hold valid portal credentials for at least one tenant and must know or guess target bucket/object keys (e.g. sysmon-configs/<customer_code>/sysmon_config.xml, copilot-case-report-templates/<name>, copilot-cases/<case_id>/<file>, velociraptor-artifacts/<agent_id>/<flow_id>/<file>); the sibling list, download, and delete routes remain admin/analyst-only, so only the upload write path is reachable.

Impact

This is a genuine near-term priority rather than a CVSS-inflated issue, but its reach is gated by authentication. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:L, base 8.5) describes a network-reachable, low-complexity write that requires a low-privilege authenticated account (PR:L - the customer_user portal role) and no user interaction, with a changed scope reflecting cross-tenant and downstream-endpoint impact and integrity as the dominant effect (I:H, A:L, C:N). The vuln.today decision label is 'this_week', consistent with a serious-but-not-emergency posture. No EPSS score and no SSVC decision values were supplied in the input, and the issue is NOT present in CISA KEV, so there is no evidence of active exploitation. However, a working proof-of-concept is published in the GHSA advisory and was confirmed live by the reporter against the official ghcr.io/socfortress/copilot-backend image, so exploitability is proven even though in-the-wild use is not. The main factor tempering raw severity is that an attacker must already hold valid customer-portal (customer_user) credentials for at least one tenant; this is the lowest-privilege role, but it is still authenticated access, so the flaw is a privileged-insider / compromised-tenant-credential risk, not a remote-unauthenticated one. Note the CVSS vector reports C:N despite the cross-tenant nature - this is consistent with the advisory, because only the write/upload path is exposed while list/download/delete remain admin/analyst-only, so the impact is integrity and availability, not disclosure.

Exploit ScenarioDerived

An attacker holding customer_user portal credentials for a single tenant sends a crafted POST to /api/agent_data_store/upload specifying an arbitrary bucket_name and object_name, and overwrites another tenant's sysmon-configs/<customer_code>/sysmon_config.xml to blind endpoint telemetry, or plants a malicious DOCX/HTML file in copilot-case-report-templates that is later rendered server-side as a path to code execution. A working proof-of-concept demonstrating exactly these cross-tenant writes is published in the vendor's GHSA advisory and was confirmed live by the reporter. Because the vector is network, low-complexity, and needs only the lowest-privilege authenticated role, exploitation is straightforward once valid portal credentials are obtained.

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

Cross-tenant object-store writes in SOCFortress CoPilot before 0.1.76 let any authenticated customer_user (customer-portal) account overwrite arbitrary objects in any bucket - including other tenants' case evidence and forensic artifacts, the Sysmon configuration distributed to managed Windows endpoints, and the report templates rendered server-side - because the upload route accepts caller-controlled bucket and object names with no allow-list, no tenant prefix, no ownership check and no content validation. The write is an unconditional upsert that creates missing buckets on demand, so the lowest-privilege role can blind endpoint telemetry, tamper with cross-tenant evidence, poison report templates for later server-side rendering, plant data or exhaust storage. The reporter published a confirmed live proof-of-concept with reproduction steps against the published ghcr.io/socfortress/copilot-backend:latest image; no CISA KEV entry or other active-exploitation reporting is present, and 0.1.76 fixes the issue by restricting the upload route to admin/analyst scopes.

RemediationAI

Upgrade to CoPilot 0.1.76, the vendor-released fix, which removes the customer_user scope from POST /api/agent_data_store/upload so the route requires admin or analyst rights; the change is captured in PR 937 (https://github.com/socfortress/CoPilot/pull/937) and commit 2d090bc07a109eefbdf9ed22dc67b0c93922d9ca, with details in advisory GHSA-6j26-wcv6-gp3f (https://github.com/socfortress/CoPilot/security/advisories/GHSA-6j26-wcv6-gp3f). The vendor notes that the customer portal uploads case files through /incidents/db_operations/case/data-store/upload rather than this route, so removing customer_user does not break portal uploads - verify that before rolling the change into any customized deployment. Where an immediate upgrade is not possible, applying the same scope restriction (admin/analyst only) to the upload route is the corrective change the upstream fix makes; the trade-off is that any non-portal integration relying on customer_user writes to that endpoint will start receiving authorization errors and must be repointed to the portal route. Beyond the scope fix, the advisory's recommended hardening is to constrain bucket_name to a fixed server-side allow-list, force object_name to the caller's resolved customer_code prefix, reject non-administrative writes to the sysmon-configs and copilot-case-report-templates buckets, validate content type and extension against the destination bucket's expected format, and stop creating buckets on demand from user-supplied names. Because the write is an overwrite, also review object-store contents for tampered sysmon_config.xml files and report templates and reverify case evidence and Velociraptor artifact integrity in any instance that was reachable by a customer_user account before patching.

Affected VersionsENISA

CoPilot < 0.1.76

Affected Packages

euvd copilot fix: 0.1.76

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 FastAPI backend that fronts a MinIO/S3-compatible object store through the MinIO Python client. The vulnerable handler at backend/app/data_store/data_store_routes.py:32 is guarded only by a scope dependency admitting admin, analyst and customer_user, then passes the request's bucket_name and object_name form fields straight into upload_file_to_datastore in backend/app/data_store/data_store_operations.py. That routine calls create_bucket_if_not_exists with the user-supplied name and then fput_object as an upsert, so an existing key belonging to another tenant is silently replaced; the sole validation is that file.filename is non-empty, with no extension or content-type restriction. The root cause class is CWE-284 improper access control, with the advisory also classifying it as CWE-639 (authorization bypass through user-controlled key) and CWE-862 (missing authorization) because object keys are taken from the request instead of being derived from the caller's resolved customer_code. The sibling list, download and delete routes in the same router are admin/analyst-only and build keys from database rows, so only this write path is broadly exposed. Because the overwritten keys are consumed downstream - sysmon-configs/<customer_code>/sysmon_config.xml is pushed to managed Windows endpoints, copilot-case-report-templates/<name> is rendered server-side, and copilot-cases/<case_id>/<file> plus velociraptor-artifacts/<agent_id>/<flow_id>/<file> hold evidence and collected artifacts - the integrity impact propagates beyond the object store itself; the template-poisoning consequence is described by the reporter as a staging path toward code execution via later server-side rendering, though the published PoC demonstrates only the unauthorized writes, not code execution. Exploitation requires an authenticated customer-portal account (CVSS PR:L) and knowledge or guessing of target bucket and object keys; no administrative rights or non-default configuration are needed. The upstream fix in PR 937 narrows the route dependency to admin/analyst, noting that the customer portal uploads case files through /incidents/db_operations/case/data-store/upload instead.

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 8.5 HIGH
AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:L
vuln.today AI 8.5 HIGH

Network API reachable by the authenticated lowest-privilege customer_user (PR:L, AC:L); writes affect other tenants and managed endpoints so S:C; only the write path is exposed so C:N, with I:H and A:L from arbitrary overwrite and storage exhaustion.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

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

DescriptionCVE.org

SOCFortress CoPilot focuses on providing a single pane of glass for all your security operations needs. Prior to 0.1.76, POST /api/agent_data_store/upload in backend/app/data_store/data_store_routes.py permits customer_user callers to choose bucket_name and object_name without an allowlist, tenant prefix, ownership check or content restriction. The only file check requires a nonempty filename. The operations in backend/app/data_store/data_store_operations.py create missing buckets and upsert objects, allowing existing objects belonging to any tenant to be overwritten. Targets include sysmon-configs/<customer_code>/sysmon_config.xml distributed to managed Windows endpoints, copilot-case-report-templates/<name> rendered server-side, and case evidence or forensic artifacts under copilot-cases/<case_id>/<file> and velociraptor-artifacts/<agent_id>/<flow_id>/<file>. A lowest-privilege user can tamper with cross-tenant evidence, blind endpoint telemetry, poison report templates for later code execution, plant data or exhaust storage. Sibling list, download and delete routes remain restricted to admin/analyst; the exposed operation is the upload write path. This issue is fixed in version 0.1.76.

Technical POC Analysis

CWE-284 (Improper Access Control); the advisory also tags CWE-639 (Authorization Bypass Through User-Controlled Key) and CWE-862 (Missing Authorization).

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-61708 in SOCFortress CoPilot prior to 0.1.76 allows any low-privilege customer portal user to write to arbitrary cross-tenant object storage, putting other customers' forensic evidence, the Sysmon configuration pushed to managed Windows endpoints, and server-side report templates at risk of tampering. The most serious organizational consequences are loss of telemetry visibility across the managed Windows estate and potential cross-tenant data integrity breaches that carry contractual and regulatory exposure for a multi-tenant security platform. Leadership should treat this as a tenant-isolation failure affecting both confidentiality and integrity across the entire customer base.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: restrict or disable customer_user upload functionality, enforce object-store policies that deny cross-tenant bucket writes and bucket creation, validate bucket and object names against a per-tenant allow-list with ownership checks, monitor object-store logs for anomalous writes, and verify integrity of Sysmon configurations and report templates.

Threat Intelligence Overview

EPSS Score
0.4%
Top 66% exploitable
Prevalence
Low
niche open-source SOC/SOAR 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
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

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

Attack Technique

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

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