CVE-2026-61707: SOCFortress CoPilot: Stored case-report template injection permits backend code execution
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 customeruser, 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/dboperations.py validates only the filename-derived MIME type, not the template content. Templates share a global store without customercode scoping, and customeruser 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, renderdocumentwithcontext uses DocxTemplate without a sandbox; in backend/app/incidents/services/reportspdf.py, renderhtmltemplate 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.
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
SOCFortress CoPilotto a version that resolves this vulnerability.Fixed in 0.1.76