CVE-2026-61707 in CoPilot
Résumé
par VulDB • 29/10/2026
SOCFortress CoPilot vise à offrir une vue unifiée (single pane of glass) pour l'ensemble de vos besoins en opérations de sécurité. Avant la version 0.1.76, dans le déploiement signalé, les modèles de rapports de cas téléchargés par `customer_user`, qui est le rôle portail avec les privilèges les plus faibles, sont ensuite exécutés par des moteurs Jinja2 non isolés (non sandboxed) lorsqu'un administrateur ou un analyste génère un rapport. La route `/case-report-template/upload` dans `backend/app/incidents/routes/db_operations.py` ne valide que le type MIME dérivé du nom de fichier, et non le contenu du modèle. Les modèles partagent un magasin global sans isolation par `customer_code`, et `customer_user` peut également les lister, les télécharger et les supprimer, permettant à un attaquant de remplacer un modèle par défaut légitime sous le même nom. Dans `backend/app/incidents/services/reports.py`, la fonction `render_document_with_context` utilise `DocxTemplate` sans bac à sable ; dans `backend/app/incidents/services/reports_pdf.py`, `render_html_template` utilise un `Environment` non isolé et sans échappement automatique (autoescaping). Les requêtes privilégiées normales vers les endpoints `POST /api/incidents/report/generate-report-docx` ou `/generate-report-pdf` évaluent donc des expressions Jinja contrôlées par l'attaquant comme du code Python côté serveur. Le déploiement signalé exécute des commandes en tant que root, exposant ainsi les données d'incidents et de SIEM de tous les locataires (tenants) ainsi que les identifiants des connecteurs stockés. Le rendu HTML/PDF via wkhtmltopdf permet également la lecture de fichiers locaux et l'envoi de requêtes vers des services internes. Ce problème est corrigé dans la version 0.1.76.
If you want to get best quality of vulnerability data, you may have to visit VulDB.