{"id":"CVE-2026-61730","published":"2026-10-30T15:16:53.223","lastModified":"2026-10-30T17:13:54.187","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.","cvssScore":9.3,"cvssSeverity":"CRITICAL","cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:N","cwes":["CWE-200","CWE-306","CWE-522","CWE-552"],"vendors":[],"products":[],"references":[{"url":"https://github.com/socfortress/CoPilot/commit/bfa630b65d554670c7462a32ce6fd4e3cbd0254c","tags":[]},{"url":"https://github.com/socfortress/CoPilot/pull/940","tags":[]},{"url":"https://github.com/socfortress/CoPilot/security/advisories/GHSA-pm2w-mmc3-h8hc","tags":[]},{"url":"https://github.com/socfortress/CoPilot/tree/v0.1.77","tags":[]}],"exploitRefs":[{"url":"https://github.com/socfortress/CoPilot/commit/bfa630b65d554670c7462a32ce6fd4e3cbd0254c","tags":[]},{"url":"https://github.com/socfortress/CoPilot/pull/940","tags":[]},{"url":"https://github.com/socfortress/CoPilot/security/advisories/GHSA-pm2w-mmc3-h8hc","tags":[]},{"url":"https://github.com/socfortress/CoPilot/tree/v0.1.77","tags":[]}],"hasPoc":true,"ai":{"summary":"An unauthenticated StaticFiles mount in SOCFortress CoPilot exposes ScoutSuite-generated cloud security reports and, during GCP scans, the uploaded service-account private key, allowing attackers to steal credentials and read sensitive IAM and misconfiguration data.","exploitability":"Exploitation is trivial for any network-accessible attacker; no authentication or user interaction is required, and report names are predictable.","blast_radius":"Attackers can fully compromise cloud environments via leaked service-account keys and access to detailed security findings, enabling lateral movement, privilege escalation, and data exfiltration across AWS, Azure, and GCP.","remediation":"Upgrade to version 0.1.77 or later to remediate credential exposure; for the report-disclosure component, disable or restrict access to the `/scoutsuite-report` endpoint until a full fix is released, as no published release fully resolves it.","detection":"Monitor for unauthenticated GET requests to paths under `/scoutsuite-report`, especially those ending in `.js` or containing service-account JSON filenames; also alert on anomalous access to ScoutSuite report files during active GCP scan windows.","tags":["credential-exposure","auth-bypass","web","cloud","gcp","report-disclosure"],"model":"garnet-coder","analyzedAt":"2026-10-31T08:49:08.881Z"}}