All vulnerabilities
GHSA-2qcm-3gv6-2mfc

github.com/obot-platform/obot: CLI login flow could be used to steal another user's API key

github.com/obot-platform/obot
CVSS
8.1High
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)No scoreNo FIRST EPSS score in this snapshot yet
Fixed in0.26.0Fixed versionGitHub
Published6 Oct 2026Updated 6 Oct 2026GitHub

What fixes it

  • 0.26.0github.com/obot-platform/obot, goGitHubgo get github.com/obot-platform/obot@v0.26.0

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

Summary

In affected versions, an unauthenticated attacker could start a CLI login, send the login link to a signed-in Obot user, and collect the API key that was created when that user opened the link. The attacker could then act as that user through the Obot API, the LLM gateway, and MCP servers.

Am I affected?

You are affected if you run any Obot version before v0.26.0. That includes the v0.25.x patch releases, through v0.25.6, which were not patched. The attack only works if a user who is signed in to Obot, or can sign in through your identity provider, opens a link the attacker sends them.

Details

The obot CLI signs in through a token request: the client creates a request, the user signs in through the browser, and the client then fetches the resulting API key. The client chose the request's ID, and neither creating the request nor fetching the key required authentication or was tied to the browser that signed in. An attacker could create a request with an ID they knew, get a user to open the sign-in link for it, and then fetch the API key Obot created for that user. The attacker also chose the key's scopes and could make it never expire.

Impact

The worst case is takeover of the victim's Obot account through a long-lived API key that carries the victim's permissions, including API, LLM gateway, and MCP server access. If the victim is an admin, the attacker gets admin access. The victim only has to open one link. The attacker does not learn the victim's identity provider credentials.

Mitigation

Upgrade to v0.26.0 or later. The CLI now uses a device-code flow: Obot generates the request ID, and the signed-in user must enter the code shown by the CLI before a key is issued. After upgrading, review your users' API keys and delete any that were not created on purpose. If you cannot upgrade, blocking POST /api/token-request at your proxy prevents the attack, but it also disables CLI login.

Severity

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

Credits

The Obot team would like to thank @daniel-mertz for responsibly disclosing this issue in accordance with our security policy.

Text from GitHub Advisory Database

Affected versions 1

  • github.com/obot-platform/obot, go< 0.26.0GitHub