GHSA-jmf4-m7j9-g72r — fleet
HIGHGHSA-jmf4-m7j9-g72r is a high-severity (CVSS 7.5) Server-Side Request Forgery (SSRF) vulnerability in github.com/rancher/fleet. A fix is available for github.com/rancher/fleet — see the affected versions and patch details below.
Rancher Fleet has Unauthenticated Webhook: Regex Injection via Unsanitized Repository URL Components
Exploitation Status
No confirmed exploitation observed yet
- CISA’s own triage has not observed active exploitation or public proof-of-concept code for this CVE as of its last assessment.
Exploitation and automatability from CISA’s SSVC triage for GHSA-jmf4-m7j9-g72r.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
GHSA-jmf4-m7j9-g72r by exploitation likelihood (EPSS) against impact (CVSS). Outside the shaded patch-first corner.
Where this sits among everything scored
Of 382,795 CVEs with a current EPSS score, this one falls in the < 10% band (highlighted). Counts from FIRST.org, log-scaled.
Real-World Exposure
github.com/rancher/fleet🐹github.com/rancher/fleet🐹github.com/rancher/fleet🐹github.com/rancher/fleetReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Go packages — download data is not available via public APIs for these ecosystems.
Description
Impact
A vulnerability has been identified in Fleet when the webhook endpoint is configured without a secret; an attacker can forge webhook requests. The attacker doesn't need to know the specific repository or path configured in the GitRepo resource to make Fleet process these requests.
An attacker can exploit this vulnerability to cause the following impacts:
- Trigger continuous repository re-cloning, which increases network traffic and can deplete resources on the management cluster.
- Downgrade running services to any historical revision available in the remote Git repository. This risk applies if the attacker has read access to the target Git repository and knows its configured path.
Please consult the associated MITRE ATT&CK - Technique - T1499.004: Endpoint Denial of Service for further information about this category of attack.
Patches
To resolve this vulnerability, upgrade Fleet to a patched version. This upgrade version escapes the URL and path to the remote repository received from webhooks, which prevents regular expressions from being used as a replacement for the URL and path.
Patched versions of Fleet include releases v0.15.2, v0.14.6, 0.13.11, and v0.12.15.
Workarounds
If you can't upgrade to a fixed version, please make sure to only enable webhooks with a shared secret.
Credits
This security issue was reported by the following collaborators according to our responsible disclosure policy:
- Radisauskas Arnoldas from NATO and the NATO Cyber Security Centre (NCSC).
References
If you have any questions or comments about this advisory:
- Reach out to the SUSE Rancher Security team for security related inquiries.
- Open an issue in the Rancher repository.
- Verify with our support matrix and product support lifecycle.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐹Go | github.com/rancher/fleet | ≥ 0.15.0&&< 0.15.2 | 0.15.2go get github.com/rancher/fleet@v0.15.2 |
| 🐹Go | github.com/rancher/fleet | ≥ 0.14.0&&< 0.14.6 | 0.14.6go get github.com/rancher/fleet@v0.14.6 |
| 🐹Go | github.com/rancher/fleet | ≥ 0.13.0&&< 0.13.11 | 0.13.11go get github.com/rancher/fleet@v0.13.11 |
| 🐹Go | github.com/rancher/fleet | ≥ 0.12.0&&< 0.12.15 | 0.12.15go get github.com/rancher/fleet@v0.12.15 |
Affected Products
rancher fleetsuseDetection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for github.com/rancher/fleet, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update github.com/rancher/fleet to 0.15.2 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-jmf4-m7j9-g72r is resolved across your whole dependency graph.
Workarounds
Restrict outbound requests from the affected component to an allowlist of hosts, block access to link-local and internal address ranges at the network layer, and require authentication on internal services so a forged request cannot reach them unauthenticated.
Frequently Asked Questions
Is GHSA-jmf4-m7j9-g72r in your dependencies?
Find it across Go, including transitive dependencies.