Skip to main content

SOCFortress CoPilot EUVDEUVD-2026-113399

| CVE-2026-61707 CRITICAL
Code Injection (CWE-94)
2026-10-29 GitHub_M
9.0
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
    Delete and replace default report template with Jinja2 payload
  3. Exploit
    Create a case to be reported on
  4. Execution
    Admin/analyst generates DOCX/PDF report
  5. Persist
    Non-sandboxed Jinja2 executes payload as root
  6. Impact
    Cross-tenant data and connector credentials exposed

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

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

Exploitation Conditions

Requires (1) a valid customer_user portal account - the lowest-privilege role - which can reach the upload/list/download/delete siblings of /case-report-template because they are all scoped to admin/analyst/customer_user, and the global template store has no customer_code scoping; and (2) a privileged admin or analyst to subsequently call POST /api/incidents/report/generate-report-docx or /generate-report-pdf against a case using the poisoned template (this satisfies UI:R and makes it a stored second-order injection, not direct self-service RCE). Limiting factors: the attacker cannot detonate the payload alone - a privileged user's routine report generation is the trigger - and valid low-privilege credentials are needed. Aggravating factors in the reported deployment: no content validation (filename-only MIME check), no Jinja2 sandbox or autoescape on either render path, the backend process runs as root, and wkhtmltopdf runs without --disable-local-file-access, adding local-file read and SSRF.

Impact

This is a genuine high-priority issue, not an inflated CVSS score. The signals converge: the vuln.today decision label is act_now, the vendor has shipped a fix (0.1.76), and the GHSA advisory contains a proof-of-concept the reporter states was confirmed live against the official ghcr.io/socfortress/copilot-backend:latest image, achieving uid=0(root) command execution. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H = 9.0) is internally consistent with the mechanism: network-reachable upload endpoint, low complexity, PR:L because the attacker needs only the lowest-privilege customer_user portal role, UI:R because a privileged admin/analyst must generate the report to detonate the stored payload, and S:C because execution escapes the application's authorization scope to run as root across all tenants. No EPSS score and no CISA KEV status are provided in the input, so widespread-exploitation probability cannot be quantified and active in-the-wild exploitation is NOT confirmed. The tension to flag: this is a stored/second-order injection requiring a privileged user's routine action plus valid low-privilege credentials, so despite the critical impact it is not a point-and-click remote-unauthenticated RCE - realistic risk is highest in multi-tenant deployments where untrusted customer_user accounts coexist with admins who generate reports.

Exploit ScenarioDerived

A customer_user authorized only for one tenant deletes the organization's default case-report template and re-uploads a malicious .html or .docx under the same name containing a Jinja2 gadget (e.g. {{ lipsum.__globals__["os"].popen(...) }}); the filename-only MIME check passes. When an admin or analyst later runs the routine POST /generate-report-pdf or /generate-report-docx, the non-sandboxed Jinja2 engine evaluates the payload as Python on the backend. A working PoC confirmed live in the GHSA advisory demonstrates arbitrary command execution as root, and the wkhtmltopdf path additionally allows local-file reads and SSRF to internal services.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 29, 2026

Stored server-side template injection in SOCFortress CoPilot before 0.1.76 allows a customer_user - the lowest-privilege portal role - to upload a malicious DOCX or HTML case-report template into a global, unscoped store and replace a legitimate default template under the same name. When an admin or analyst later generates a report through /api/incidents/report/generate-report-docx or /generate-report-pdf, the non-sandboxed Jinja2 engine evaluates the attacker's expressions as Python, yielding remote code execution that the advisory confirms as root in the reported deployment. The advisory includes a confirmed live proof-of-concept against the published backend image, the issue is prioritized as act_now, and no CISA KEV entry is provided.

RemediationAI

Vendor-released patch: upgrade to SOCFortress CoPilot 0.1.76. The upstream fix in PR 936 and commit a5ed4a250094d1b6d15ba0ec088dbd773ab1b4e0 restricts the case-report-template upload, list, download, and delete routes to admin and analyst roles, validates file extension and content rather than only a filename-derived MIME type, renders DOCX through SandboxedEnvironment(autoescape=True), renders HTML through SandboxedEnvironment with select_autoescape, and runs wkhtmltopdf with disable-local-file-access. See the vendor advisory at https://github.com/socfortress/CoPilot/security/advisories/GHSA-7q83-228r-wfh5. If upgrading immediately is not possible, remove customer_user access to the /api/incidents/db_operations/case-report-template upload, list, download, and delete routes; the trade-off is that customer portal users lose self-service template management. Because RBAC changes alone do not neutralize templates already placed in the global store, also apply or backport the sandbox, autoescape, and wkhtmltopdf --disable-local-file-access changes before relying on access restrictions.

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

The root cause is CWE-94 code injection realized as stored, second-order server-side template injection in Jinja2. The upload route at backend/app/incidents/routes/db_operations.py validates only a MIME type guessed from the filename, so a plain .html or .docx file can carry attacker-controlled Jinja expressions. Templates are held in one global store without customer_code scoping, and the list, download, and delete siblings are reachable by customer_user, allowing replacement of a legitimate default template under the same name. Both render paths are unsafe: render_document_with_context uses DocxTemplate without a sandbox, and render_html_template uses a standard Jinja2 Environment without autoescaping. A routine privileged report generation therefore evaluates the template body as Python. The assessed vector is CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H, confirming that a low-privileged authenticated account supplies the payload while a privileged user's report generation provides the required user interaction. In the reported deployment the backend runs as root, and the HTML/PDF path also runs wkhtmltopdf without --disable-local-file-access, adding local-file read and SSRF from inside the renderer.

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

PR:L for the customer_user role and UI:R because a privileged user must generate the report; S:C and C/I/A:H because sandbox-less Jinja2 yields root RCE escaping tenant scope.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Oct 29, 2026 - 22:03 EUVD
CVE Published
Oct 29, 2026 - 21:25 cve.org
CRITICAL 9.0

DescriptionCVE.org

SOCFortress CoPilot focuses on providing a single pane of glass for all your security operations needs. Prior to 0.1.76, in the reported deployment, case-report templates uploaded by customer_user, the lowest-privilege portal role, are later executed by non-sandboxed Jinja2 engines when an admin or analyst generates a report. The /case-report-template/upload route in backend/app/incidents/routes/db_operations.py validates only the filename-derived MIME type, not the template content. Templates share a global store without customer_code scoping, and customer_user can also list, download and delete them, allowing an attacker to replace a legitimate default template under the same name. In backend/app/incidents/services/reports.py, render_document_with_context uses DocxTemplate without a sandbox; in backend/app/incidents/services/reports_pdf.py, render_html_template uses a non-sandboxed Environment without autoescaping. Normal privileged requests to POST /api/incidents/report/generate-report-docx or /generate-report-pdf therefore evaluate attacker-controlled Jinja expressions as Python on the backend. The reported deployment executes commands as root, exposing all tenants' incident and SIEM data and stored connector credentials. The HTML/PDF wkhtmltopdf renderer additionally permits local-file reads and requests to internal services. This issue is fixed in version 0.1.76.

Technical POC Analysis

Stored server-side template injection leading to code injection, CWE-94 (with template-engine CWE-1336 also applicable).

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

A critical stored template injection vulnerability in SOCFortress CoPilot (CVE-2026-61707) allows the lowest-privileged user to upload a malicious template that, when used by an administrator to generate a report, executes arbitrary code as root. This exposes the entire CoPilot backend and potentially connected incident systems to full compromise. Leadership should prioritize immediate remediation because the flaw is trivial to exploit with a live proof-of-concept, and any customer-facing portal account could be a doorway to total system takeover.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 86% exploitable
Prevalence
Low
niche open-source SOC/SIEM management platform, limited enterprise footprint
Social Media
3
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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
Very High
Technical Impact
Total

Priority Score

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

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

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