IT SBIT Services
Schneeberger
DEEN
CVE tracker

SOCFortress CoPilot: Server-side template injection leading to code execution

CVE-2026-61707Critical 9.0

← All vulnerabilities

Summary

CoPilot before 0.1.76 renders case-report templates with a non-sandboxed Jinja2 engine. A user with the lowest-privilege customer_user role can upload a manipulated template, and it is executed as Python code when an admin or analyst generates a report. In the reported deployment this allowed command execution as root, exposing data of all tenants and stored connector credentials. The PDF renderer additionally allowed local file reads and requests to internal services.

Affected

  • SOCFortress CoPilot versions before 0.1.76

Fixed in

  • Fixed in version 0.1.76

Workaround

Unknown.

Exploitation

  • No known exploitation in the wild. Not listed in CISA KEV.
  • CISA SSVC assessment: exploitation none, automatable no, technical impact total.
  • A valid customer portal account is required.

Our recommendation

  • Upgrade CoPilot to version 0.1.76 or later as a priority, especially if the portal is reachable from the internet or has customer accounts.
  • Review customer_user accounts and remove those that are not needed.
  • Review the case-report template store for unexpected or modified templates.
  • Restrict network access to the CoPilot web interface until the upgrade is completed.
  • Check CVE-2026-61708 (improper access control) in the same upgrade cycle.

Public exploits

PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.

Research sources

Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 31 Oct 2026, 08:00.

Original description (NVD)

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.

NVD references (4)

Sources

The tracker combines official, freely usable data sources – updated continuously:

This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.

Affected? We can help.

We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.