← Incident database

gainsight-oauth-2025 · Disclosed 2025-11-20

Gainsight integration: old OAuth tokens reused against customer environments

Attackers tested old integration tokens and used still-valid credentials against Salesforce APIs. The original acquisition path is unidentified.

CredentialsCause unresolved / undisclosed

Outcome: Confirmed breach

Entry path and evidence

  • Reported fact

    Gainsight reports token validation on October 22 and customer Salesforce API calls on November 16–19, without corresponding recent access to Gainsight systems.

    [s2]Analyzing the Token Usage
  • Reported fact

    Even the newest token dated to August 2023. Investigators could not identify the leak source; Gainsight identifies long-lived validity as a systemic issue.

    [s2]Analyzing the Token Origin / At the Root of the Issue
  • Reported fact

    The Mandiant summary published by Gainsight reports no active threat-actor evidence in its logs; it does not establish the historical leak origin.

    [s3]冒頭の調査結論(2025-12-05時点)

Timeline

  1. Incident disclosed. [s1]

Reported response

  • Reported fact

    Gainsight reported credential rotation, stale-key removal, frequent token refresh, single-use refresh tokens, trusted IP restrictions, and PKCE.

    [s2]Immediate Remediation / OAuth Token Lifecycle Management

Cause and mitigation hypotheses

These are editorial hypotheses, separate from established causes and reported responses. Supporting and challenging observations are checks to investigate, not collected evidence.

  1. Cause hypothesis 1 Unverified

    The old token set may have leaked from a historical Gainsight-controlled environment.

    Primary-source starting point

    Gainsight cannot identify the old token set’s origin and describes historical internal leakage and external acquisition as alternatives.

    [s2]Analyzing the Token Origin / Where did these tokens come from?

    Read assumptions, observations, and limits
    Required assumptions
    • An extraction path existed when the token set was present in that environment.
    Observations that would support it
    • Preserved historical records match the token set and extraction timeline.
    Observations that would challenge it
    • Independent preserved evidence establishes an external origin incompatible with this explanation.
    Assessment limits
    • Relevant historical logs are unavailable; public evidence cannot verify this or establish a 2025 platform breach.

    Related inspection rules

  2. Cause hypothesis 2 Unverified

    The old token set may have been acquired from external environments or endpoints outside Gainsight’s control.

    Primary-source starting point

    Gainsight cannot identify the old token set’s origin and describes historical internal leakage and external acquisition as alternatives.

    [s2]Where did these tokens come from?

    Read assumptions, observations, and limits
    Required assumptions
    • The tokens were handled externally and the attacker could reach that location.
    Observations that would support it
    • Preserved external records show matching token handling, acquisition, and timing.
    Observations that would challenge it
    • An internal extraction is established, or the tokens demonstrably never existed at the proposed external location.
    Assessment limits
    • Listing alternatives implies no equal probability; specific techniques such as phishing or endpoint compromise remain unidentified.

    Related inspection rules

  3. Mitigation hypothesis 3 Unverified

    Verifying legacy OAuth revocation and refresh-token reuse controls could limit replay of historically leaked tokens.

    Primary-source starting point

    Old tokens remained usable in customer environments; Gainsight reported frequent rotation and single-use refresh tokens.

    [s2]At the Root of the Issue / OAuth Token Lifecycle Management

    Read assumptions, observations, and limits
    Required assumptions
    • The API provider can revoke old tokens and all pre- and post-refresh credentials can be controlled.
    Observations that would support it
    • Synthetic isolated tests reject revoked access tokens and consumed refresh tokens; provider revocation records agree.
    Observations that would challenge it
    • Old keys remain accepted after replacement, or reused refresh tokens issue new access authority.
    Assessment limits
    • Application-side deletion does not prove revocation; MFA or PKCE alone does not stop an already stolen bearer token’s API use.

    Related inspection rules

Read this incident’s AI-ready guide ↗

Evidence relevant to prevention

Operational controls to inspect

Inspect OAuth lifetimes, refresh-token reuse controls, and legacy revocation evidence even when the leak source is unknown.

Editorial assessment; not a determination of liability. [s2]

Unknowns and AI involvement

AI involvementUnknown

The cited sources do not establish attacker use of AI; absence of evidence is not evidence of absence.

The original source and leakage date are unknown; 2025 reuse does not establish a new breach of Gainsight itself.

Sources

  1. [s1] Gainsight · Primary source

    Salesforce–Gainsight Connected App Incident ↗

    Published 2025-11-20 · Reviewed 2026-10-10

  2. [s2] Gainsight · Primary source

    How We Accelerated a Year of Security Work in Weeks ↗

    Published 2026-01-02 · Reviewed 2026-10-10

  3. [s3] Gainsight(Mandiant調査要約) · Primary source

    Mandiant Investigation Summary ↗

    Published 2025-12-08 · Reviewed 2026-10-10