What’s Vulnerable › Vulnerabilities

CVE-2026-61707: SOCFortress CoPilot: Stored case-report template injection permits backend code execution

Description

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.

Summary

SOCFortress CoPilot before 0.1.76 lets the lowest-privilege portal role (customer_user) upload case-report templates that are later rendered by non-sandboxed Jinja2 engines when an admin or analyst generates a DOCX or PDF report. Because templates are stored globally without customer_code scoping and can be replaced under the same name, an attacker can inject Jinja expressions that execute as Python on the backend, reportedly as root, exposing all tenants' incident and SIEM data and stored connector credentials; the HTML/PDF renderer also allows local-file reads and requests to internal services. No exploitation in the wild is reported and the issue is not in CISA KEV. Upgrade to CoPilot 0.1.76 or later; if you cannot patch immediately, restrict template upload and report generation to trusted users and review existing templates for injected content.

تسمح SOCFortress CoPilot قبل الإصدار 0.1.76 لأدنى دور صلاحية في البوابة (customer_user) برفع قوالب تقارير الحوادث التي تُنفَّذ لاحقًا عبر محركات Jinja2 غير المعزولة عند إنشاء مدير أو محلل تقريرًا بصيغة DOCX أو PDF. ولأن القوالب تُخزَّن عالميًا دون تحديد customer_code ويمكن استبدالها بالاسم نفسه، يستطيع المهاجم حقن تعبيرات Jinja تُنفَّذ كأوامر Python على الخادم الخلفي، ويُذكر أنها تعمل بصلاحيات root، ما يكشف بيانات الحوادث وSIEM لجميع المستأجرين وبيانات اعتماد الموصلات المخزنة؛ كما يتيح مُصدِّر HTML/PDF قراءة الملفات المحلية وإرسال طلبات إلى خدمات داخلية. لا توجد تقارير عن استغلال فعلي في البرية، والثغرة غير مدرجة في CISA KEV. يُنصح بالترقية إلى CoPilot 0.1.76 أو أحدث؛ وإذا تعذّر الترقية فورًا، فقيّد رفع القوالب وإنشاء التقارير للمستخدمين الموثوقين وراجع القوالب الحالية بحثًا عن محتوى محقون.

Affected products

References

Get alerted when CVE-2026-61707 or the next vulnerability affects your stack