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 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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- Required
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
9.0
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 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.
- Record
CVE-2026-61707- CVSS 3.1
- 9.0 Critical
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H - Weakness
- CWE-94, CWE-862, CWE-1336
- Updated
- 2026-11-02
EUVDEUVD-2026-113399
9.0
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.
- Record
EUVD-2026-113399- CVSS 3.1
- 9.0 Critical
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H - Updated
- 2026-11-02
NVD
9.0
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.
- Record
CVE-2026-61707- CVSS 3.1
- 9.0 Critical
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H - Weakness
- CWE-94, CWE-862, CWE-1336
- Updated
- 2026-11-02
OSV
9.0
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 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.
- Record
CVE-2026-61707- CVSS 3.1
- 9.0 Critical
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H - Weakness
- CWE-1336, CWE-862, CWE-94
- Updated
- 2026-11-02
Affected products
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-61707 is a critical vulnerability (CVSS 9.0) in Socfortress Copilot, published October 29, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.24%, the 14th percentile. No source names a fixed version.
References
github.com/socfortress/CoPilot/security/advisories/GHSA-7q83-228r-wfh5
github.com/socfortress/CoPilot/pull/936
github.com/socfortress/CoPilot/commit/a5ed4a250094d1b6d15ba0ec088dbd773ab1b4e0
github.com/socfortress/CoPilot/tree/v0.1.76
github.com/CVEProject/cvelistV5/tree/main/cves/2026/61xxx/CVE-2026-61707.json
nvd.nist.gov/vuln/detail/CVE-2026-61707