/

CVE-2026-114662

Severity:

HIGH RISK

(8.1)

CSRF (CWE-352) in Obot CLI Authentication Login Flow

CVE-2026-114662

Deferred

Vulnerability type

Category:

Cross-Site Request Forgery

CWE:

CWE-352

Impact:

API Key Theft and Account Takeover

Severity:

HIGH RISK

(8.1)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Obot contains a cross-site request forgery vulnerability in its CLI login flow that can allow an unauthenticated attacker to induce a signed-in user to approve a token request. By controlling the token request identifier, the attacker may retrieve a non-expiring API key and take over the victim's account.

Obot contains a cross-site request forgery vulnerability in its CLI login flow that can allow an unauthenticated attacker to induce a signed-in user to approve a token request. By controlling the token request identifier, the attacker may retrieve a non-expiring API key and take over the victim's account.

Affected context

The vulnerability occurs in Obot deployments using the CLI authentication flow before version 0.26.0. Risk is present when token requests can be created without authentication, login links can be delivered to signed-in users, and the resulting API key can be retrieved using an attacker-controlled request identifier without an effective anti-CSRF control or user-intent check.

The vulnerability occurs in Obot deployments using the CLI authentication flow before version 0.26.0. Risk is present when token requests can be created without authentication, login links can be delivered to signed-in users, and the resulting API key can be retrieved using an attacker-controlled request identifier without an effective anti-CSRF control or user-intent check.

Exploit preconditions

  • Attack surface: Obot CLI login and token-request API endpoints
  • Required access: No authenticated access is required to initiate the token request
  • Trigger point: A signed-in user follows or processes an attacker-generated login link
  • Additional condition: The attacker must be able to select or control the token request identifier and obtain the resulting API key
  • Why exploitation is possible: The login flow does not sufficiently bind the request to the initiating user or verify that the user intentionally authorized the specific token request
  • Attack surface: Obot CLI login and token-request API endpoints
  • Required access: No authenticated access is required to initiate the token request
  • Trigger point: A signed-in user follows or processes an attacker-generated login link
  • Additional condition: The attacker must be able to select or control the token request identifier and obtain the resulting API key
  • Why exploitation is possible: The login flow does not sufficiently bind the request to the initiating user or verify that the user intentionally authorized the specific token request

Why this happens

The underlying issue is a cross-site request forgery condition, mapped to CWE-352, in which a state-changing authentication action can be induced through a request originating outside the trusted application context. The login flow insufficiently validates request ownership, user intent, or an unpredictable authorization state before issuing a persistent API key. As a result, an attacker-controlled token request may be associated with a victim's authenticated session.

The underlying issue is a cross-site request forgery condition, mapped to CWE-352, in which a state-changing authentication action can be induced through a request originating outside the trusted application context. The login flow insufficiently validates request ownership, user intent, or an unpredictable authorization state before issuing a persistent API key. As a result, an attacker-controlled token request may be associated with a victim's authenticated session.

Potential impact

  • An attacker may obtain a victim's non-expiring API key
  • The victim's Obot account could be taken over
  • API-backed actions could be performed with the victim's privileges
  • Sensitive account or service data could be accessed or modified
  • Compromised keys could support persistent unauthorized access until revoked
  • An attacker may obtain a victim's non-expiring API key
  • The victim's Obot account could be taken over
  • API-backed actions could be performed with the victim's privileges
  • Sensitive account or service data could be accessed or modified
  • Compromised keys could support persistent unauthorized access until revoked

General mitigation guidance

Mitigation generally focuses on binding token requests to authenticated user intent and preventing cross-origin state changes.

Common defensive patterns include:

  • Require authentication and explicit confirmation from the intended user before creating or approving token requests
  • Use unpredictable, single-use, short-lived authorization state values tied to the initiating session and intended account
  • Enforce robust CSRF protections, including validated tokens and appropriate same-site cookie settings
  • Avoid issuing non-expiring credentials; apply expiration, rotation, scoped permissions, and revocation controls
  • Validate token-request ownership and identifier authorization server-side rather than trusting client-supplied values
  • Apply least privilege to API keys and monitor their creation, retrieval, and use

Mitigation generally focuses on binding token requests to authenticated user intent and preventing cross-origin state changes.

Common defensive patterns include:

  • Require authentication and explicit confirmation from the intended user before creating or approving token requests
  • Use unpredictable, single-use, short-lived authorization state values tied to the initiating session and intended account
  • Enforce robust CSRF protections, including validated tokens and appropriate same-site cookie settings
  • Avoid issuing non-expiring credentials; apply expiration, rotation, scoped permissions, and revocation controls
  • Validate token-request ownership and identifier authorization server-side rather than trusting client-supplied values
  • Apply least privilege to API keys and monitor their creation, retrieval, and use

How teams detect issues like this

High-level detection can include:

  • Static analysis and code review for state-changing authentication endpoints that lack CSRF tokens, origin checks, or explicit confirmation
  • Review of token-request identifiers for predictability, reuse, missing ownership checks, or acceptance from untrusted contexts
  • Tests that attempt cross-origin requests against login, authorization, and credential-issuance workflows
  • Policy enforcement requiring short-lived, scoped credentials and approval for persistent tokens
  • Audit monitoring for unusual token-request creation, API-key retrieval, and use from new locations
  • Neutral automated security review tools that identify missing CSRF protections and weak authorization binding

High-level detection can include:

  • Static analysis and code review for state-changing authentication endpoints that lack CSRF tokens, origin checks, or explicit confirmation
  • Review of token-request identifiers for predictability, reuse, missing ownership checks, or acceptance from untrusted contexts
  • Tests that attempt cross-origin requests against login, authorization, and credential-issuance workflows
  • Policy enforcement requiring short-lived, scoped credentials and approval for persistent tokens
  • Audit monitoring for unusual token-request creation, API-key retrieval, and use from new locations
  • Neutral automated security review tools that identify missing CSRF protections and weak authorization binding

Sources

SourceLink
github.comgithub.com/obot-platform/obot/security/advisories/GHSA-2qcm-3gv6-2mfc
vulncheck.comvulncheck.com/advisories/obot-before-0.26.0-api-key-theft-via-cli-login-token-request

Frequently asked

questions

Yes. An attacker may be able to exploit it remotely without first authenticating, provided a signed-in user can be induced to interact with the affected login flow.

No. The attacker generally needs to create or control a token request and persuade a signed-in victim to process the associated login link.

Bind every token request to the intended authenticated session and user, require explicit confirmation, use strong single-use state, and enforce server-side authorization before issuing credentials.

Apply CSRF protections to all state-changing authentication actions, use short-lived scoped tokens, test cross-origin request behavior, and monitor credential issuance and retrieval events.

Yes. An attacker may be able to exploit it remotely without first authenticating, provided a signed-in user can be induced to interact with the affected login flow.

No. The attacker generally needs to create or control a token request and persuade a signed-in victim to process the associated login link.

Bind every token request to the intended authenticated session and user, require explicit confirmation, use strong single-use state, and enforce server-side authorization before issuing credentials.

Apply CSRF protections to all state-changing authentication actions, use short-lived scoped tokens, test cross-origin request behavior, and monitor credential issuance and retrieval events.

Find out what's already
exploitable in your codebase.