NIST deprecates RSA-2048 from 2030. Find every one of them before attackers do.
🐹
🐹 Go
Not in CISA KEV
HIGH severity

Obot: Server-Side Request Forgery via remote MCP server URLGHSA-jgh3-fggc-mcpm

HIGH

GHSA-jgh3-fggc-mcpm is a high-severity (CVSS 7.6) Server-Side Request Forgery (SSRF) vulnerability in github.com/obot-platform/obot. A fix is available for github.com/obot-platform/obot — see the affected versions and patch details below.

Also known asCVE-2026-101064GO-2026-6522
Published
Updated
Affected
1 pkg
Patched
1 / 1
Exploits
None indexed
Exploitation data as of Nov 5, 2026 · OSV.dev, NVD, FIRST.org (EPSS)

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-jgh3-fggc-mcpm.

EPSS Exploitation Probability

via FIRST.org ↗
0.2%probability of exploitation in next 30 days
Lower Risk0.00%
Lower risk than most CVEs16th percentile — riskier than 16% of all scored CVEsHighest risk

Probability of exploitation in the next 30 days, from FIRST.org EPSS.

How urgent is this, really

Where this sits among everything scored

Real-World Exposure

1 pkg affected
🐹github.com/obot-platform/obot

Real-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

Summary

In affected versions, the URL of a remote MCP server is attacker-controlled at registration and is fetched server-side with no validation of the destination. There is no guard against loopback, link-local, RFC1918 private ranges, or the cloud metadata endpoint (169.254.169.254), so a use with the Power User, Power User Plus, or Admin role can coerce Obot into making requests to internal services and to the cloud instance metadata service, and read the responses.

Am I affected?

You are affected if you run Obot <= v0.22.1 with authentication enabled and allow privileged users (with the Power User or higher privileges) to register remote MCP servers . The metadata-sync code path that triggers the fetch runs automatically during reconciliation, so no user interaction beyond registration is required.

Details

A remote server's URL (RemoteRuntimeConfig.URL) is accepted at registration after only checking that it is parseable and uses an http/https scheme — the destination is never constrained. Obot then connects to that URL when the server is launched or its OAuth state is checked, and the controller automatically fetches OAuth discovery metadata from it during reconcile. The one egress guard that exists (DisallowLocalhostMCP) is disabled by default, only blocks loopback when enabled, and is absent from the automatic metadata-fetch path. Because the fetched response body is reflected back in Obot's error messages, this is a non-blind SSRF.

Impact

An attacker can reach internal-only services and the cloud metadata service if they have the Power User, Power User Plus, or Admin role. Against 169.254.169.254 this can disclose the host's cloud IAM credentials, enabling a pivot into the cloud account.

Mitigation

Upgrade to v0.23.0 or later, which applies a single outbound egress chokepoint — rejecting loopback, link-local (including 169.254.169.254), RFC1918, and IPv6 ULA on the resolved IP at dial time — uniformly across the remote-MCP client and the OAuth-metadata client.

Severity

CVSS v3.1 Score: 7.6/10 (High) — CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:L/A:N

Credits

The Obot team would like to thank HE WEI(ギカク)(https://www.linkedin.com/in/gikaku, @hewei-gikaku) for responsibly disclosing this issue in accordance with our security policy.

Affected Packages

1 total 1 fixed
EcosystemPackageVulnerable rangeFix
🐹Gogithub.com/obot-platform/obotall versions0.23.0go get github.com/obot-platform/obot@v0.23.0

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for github.com/obot-platform/obot, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.

  2. Fix

    Update github.com/obot-platform/obot to 0.23.0 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-jgh3-fggc-mcpm is resolved across your whole dependency graph.

  3. 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

## Summary In affected versions, the URL of a remote MCP server is attacker-controlled at registration and is fetched server-side with no validation of the destination. There is no guard against loopback, link-local, RFC1918 private ranges, or the cloud metadata endpoint (`169.254.169.254`), so a use with the Power User, Power User Plus, or Admin role can coerce Obot into making requests to internal services and to the cloud instance metadata service, and read the responses. ## Am I affected? You are affected if you run Obot `<= v0.22.1` with authentication enabled and allow privileged user
O3 Security · Impact-Aware SCA

Is GHSA-jgh3-fggc-mcpm in your dependencies?

Find it across Go, including transitive dependencies.

Obot: Server-Side Request Forgery via remote MCP…