---
id: "CVE-2026-61730"
kind: "vulnerability"
aliases: ["CVE-2026-61730"]
title: "SOCFortress CoPilot: unauthenticated report mount leaks cloud credentials and findings"
severity: "critical"
cvss: 9.3
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["aws", "azure", "gcp", "package", "scoutsuite", "self-hosted", "socfortress-copilot"]
not_affected_if: ["auth-proxy-blocks-path", "managed-hosting", "no-scoutsuite-scans"]
published_at: "2026-10-30T15:16:53+00:00"
first_seen_at: "2026-10-30T15:31:11+00:00"
updated_at: "2026-10-30T15:33:06+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-61730", "first_seen_at": "2026-10-30T15:31:11+00:00"}]
---

# SOCFortress CoPilot: unauthenticated report mount leaks cloud credentials and findings

SOCFortress CoPilot serves its ScoutSuite report directory without authentication, so anyone who can reach the host can read cloud security reports. During a GCP scan it also saves the uploaded Google service-account key into that directory, letting an anonymous visitor retrieve the key and use the account's cloud permissions.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check whether the deployed CoPilot version is below `0.1.77`.
- Request `/scoutsuite-report/` on the host without credentials and see whether the files are listed or served.
- Look for `scoutsuite-results/` and `scoutsuite-report` directories in the web-served path.

## Fix

- Move CoPilot to version `0.1.77` or later, which the source states releases credential isolation.
- The source says no release fully remediates the report disclosure yet; the report exposure is unknown to be fixed.

## Timeline

- 2026-10-30T15:31:11+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-61730

## From the sources

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.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
