CVE-2026-61738 json
SOCFortress CoPilot: Arbitrary Host File Write as Root via Path Traversal in the ScoutSuite GCP Report Upload (RCE)
published 4mo ago modified 6d ago also EUVD-2026-114001 , GHSA-q3g8-3cf7-744f
Unreviewed: the maintainers' own advisory
Published by the maintainers on their GitHub repository socfortress/CoPilot. GitHub has not reviewed it into the GitHub Advisory Database, so the affected packages and versions are the maintainers' word. Read the full advisory on GitHub.
- cvss
- 10.0
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.6%
- EPSS 0.6% chance of exploitation in 30 days, percentile 46%
- public exploits
- 0
- none known
Summary
SOCFortress CoPilot focuses on providing a single pane of glass for all your security operations needs. Prior to 0.1.77, `POST /api/scoutsuite/generate-gcp-report` in `backend/app/integrations/scoutsuite/routes/scoutsuite.py` admits admin and analyst users and validates the uploaded content as `GCPScoutSuiteJSON`, but passes raw `file.filename` from the multipart header to `save_file_to_directory` in `backend/app/integrations/scoutsuite/services/scoutsuite.py`. The writer combines this filename with `scoutsuite-report` using `os.path.join` without sanitization or a resolved-path containment check. A traversal filename therefore writes the supplied JSON outside the intended report directory. In the reported root-running backend, the researcher demonstrated root-owned writes outside that directory and into the application source directory. This permits host-file overwrite subject to the accepted JSON-content constraint and can disrupt application operation; the demonstrated primitive does not establish unrestricted executable contents or unconditional cross-tenant confidentiality loss. Version 0.1.77 removes caller-controlled filenames from the affected route; unrestricted-content and direct-code-execution claims require separate curator reconciliation.
Patch / fix
- github.com/socfortress/CoPilot@1881ef8 commit
- github.com/socfortress/CoPilot@bfa630b commit
- github.com/socfortress/CoPilot#940 pull request
- github.com/socfortress/CoPilot#941 pull request
Is CVE-2026-61738 in your stack? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- yes
- Technical impact
- total
- Assessed
- 6d ago
Exploit prediction
0.56% chance of exploitation in the next 30 days, higher than 46% of all scored CVEs (FIRST EPSS, 2026-11-11).
Exploits and checks
- github.com https://github.com/socfortress/CoPilot/security/advisories/GHSA-q3g8-3cf7-744f referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 10.0 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
Affected products
- socfortress CoPilot
Classification
References
- github.com /socfortress/CoPilot/pull/940
- github.com /socfortress/CoPilot/pull/941
- github.com /socfortress/CoPilot/commit/1881ef8d28bc7f45ffa88d7ba4fcca7302355508
- github.com /socfortress/CoPilot/commit/bfa630b65d554670c7462a32ce6fd4e3cbd0254c
-
github.com
/socfortress/CoPilot/security/advisories/GHSA-q3g8-3cf7-744f
exploit, advisory
- github.com /socfortress/CoPilot/tree/v0.1.77
Sources
- CVE List CVE-2026-61738
- NVD CVE-2026-61738
- Maintainer advisory GHSA-q3g8-3cf7-744f
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
The maintainers of socfortress/CoPilot published their own advisory on GitHub. Reviewed sources take precedence over it.