What’s Vulnerable › Vulnerabilities
CVE-2026-61730: SOCFortress CoPilot: Unauthenticated Exposure of ScoutSuite Reports and Uploaded GCP Service-Account Key via Static Mount
- Severity: critical (CVSS 9.3 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 0.4% probability of exploitation in the next 30 days
- Public exploit or detection template: none known
- Published: 2026-10-30 · updated 2026-10-30
- Weakness: CWE-200
Description
SOCFortress CoPilot focuses on providing a single pane of glass for all your security operations needs. In affected deployments, the unauthenticated `/scoutsuite-report` `StaticFiles` mount in `backend/copilot.py` exposes the `scoutsuite-report` directory even though normal /api routes require JWT authentication. Generated HTML reports and `scoutsuite-results/scoutsuite_results_<name>.js` files disclose AWS, Azure and GCP IAM principals, resource inventories, misconfigurations and findings. Report names derive from caller-selected names with predictable defaults. During an admin- or analyst-initiated GCP scan, `backend/app/integrations/scoutsuite/routes/scoutsuite.py` saves the uploaded Google service-account JSON key into that same web-served directory. In `backend/app/integrations/scoutsuite/services/scoutsuite.py`, `generate_gcp_report_background` removes the key only after the scan finishes. Any anonymous client that can reach the host and request the file path can therefore retrieve the private key during the scan and use the service account's cloud permissions, as well as read retained cloud-security reports. Credential isolation is released in version 0.1.77; a release fully remediating the report-disclosure component has not been established.
Summary
SOCFortress CoPilot exposes its `/scoutsuite-report` static directory without authentication, so anyone who can reach the host can download generated ScoutSuite HTML reports and result files revealing AWS, Azure and GCP IAM principals, resource inventories, misconfigurations and findings. Worse, during a GCP scan the uploaded Google service-account JSON key is written into that same web-served directory and only deleted after the scan completes, letting an anonymous client retrieve the private key and use the service account's cloud permissions. Affected deployments are those running CoPilot before the credential-isolation fix in version 0.1.77; no full fix for the report-disclosure component has been established. No exploitation is reported (not in CISA KEV, SSVC exploitation: none). Upgrade to 0.1.77 or later for credential isolation, and until a full fix exists restrict network access to the host and the `/scoutsuite-report` path, and avoid or tightly control GCP scans.
يكشف SOCFortress CoPilot عن دليل `/scoutsuite-report` الثابت دون مصادقة، ما يتيح لأي عميل مجهول يستطيع الوصول إلى المضيف تنزيل تقارير ScoutSuite بصيغة HTML وملفات النتائج التي تفصح عن هويات IAM في AWS وAzure وGCP وجرد الموارد وسوء الإعدادات والنتائج. والأخطر أن مفتاح JSON لحساب خدمة Google المرفوع أثناء فحص GCP يُحفظ في الدليل نفسه الذي يخدمه الويب، ولا يُحذف إلا بعد انتهاء الفحص، فيمكن للعميل المجهول استرداد المفتاح الخاص واستخدام صلاحيات حساب الخدمة السحابية. تتأثر عمليات النشر التي تشغّل CoPilot قبل إصدار 0.1.77 الذي يتضمن عزل بيانات الاعتماد، ولم يُحدَّد إصدار يعالج مكوّن كشف التقارير بالكامل. لا توجد تقارير عن استغلال فعلي (ليس في CISA KEV، وSSVC: none). يُنصح بالترقية إلى 0.1.77 أو أحدث لعزل بيانات الاعتماد، وإلى حين توفر إصلاح كامل يُقيَّد الوصول الشبكي إلى المضيف ومسار `/scoutsuite-report`، ويُتجنَّب فحص GCP أو يُقيَّد بإحكام.
Affected products
- socfortress CoPilot: before 0.1.77
References
- https://github.com/socfortress/CoPilot/commit/bfa630b65d554670c7462a32ce6fd4e3cbd0254c
- https://github.com/socfortress/CoPilot/pull/940
- https://github.com/socfortress/CoPilot/security/advisories/GHSA-pm2w-mmc3-h8hc
- https://github.com/socfortress/CoPilot/tree/v0.1.77
Get alerted when CVE-2026-61730 or the next vulnerability affects your stack