TL;DR: Threat actors compromised third-party OAuth tokens tied to Gainsight applications, then used those non-human identities to access Salesforce customer instances and drive exfiltration activity, according to Astrix Security. The breach shows that app-to-app trust and persistent integration access remain weak points when lifecycle controls and visibility lag behind SaaS sprawl.
At a glance
What this is: This analysis says the Gainsight incident exposed how compromised OAuth tokens can turn third-party integrations into hidden access paths into Salesforce environments.
Why it matters: It matters because IAM, PAM, and NHI teams need to govern app-to-app access as a lifecycle problem, not a one-time connector setup, across human, workload, and autonomous identity programmes.
By the numbers:
- 28% of secrets incidents now originate outside code repositories, in Slack, Jira, and Confluence, and are 13% more likely to be categorised as critical than code-based leaks.
- 64% of valid secrets leaked in 2022 are still valid and exploitable today, proving that detection alone is not enough without automated revocation.
- When AWS credentials are exposed publicly, attackers attempt access within an average of 17 minutes.
👉 Read Astrix Security's analysis of the Salesforce Gainsight OAuth token breach
Context
OAuth-connected integrations create a governance blind spot when teams treat them as application plumbing rather than identities with persistent authority. In this case, the primary problem is not just credential theft. It is the fact that third-party tokens can outlive the original trust decision and continue to reach SaaS data long after the operator loses track of them.
For IAM and NHI programmes, that makes third-party SaaS access a lifecycle and visibility problem at the same time. The control failure is usually not a single missing setting. It is the accumulation of stale integrations, over-broad scopes, weak ownership, and limited revocation discipline across business systems that were connected years apart.
Astrix Security frames this as a recurring attack pattern rather than an isolated breach, and that framing is accurate. Once app-to-app trust becomes the access layer, security teams need to know which integrations exist, what each token can do, and how quickly those privileges can be removed when the trust chain is broken.
Key questions
Q: What breaks when third-party OAuth tokens are not fully revoked after a SaaS compromise?
A: The main failure is that the attacker keeps a valid identity path into customer data even after the original breach is detected. If revocation is incomplete, refresh tokens, secondary app grants, and forgotten integrations can continue to call APIs, export records, or impersonate trusted workflows. Complete discovery and revocation are therefore containment controls, not optional cleanup.
Q: Why do SaaS integrations with standing privilege increase breach impact?
A: They expand the blast radius because one compromised token can reach multiple systems, data stores, and business processes. The attacker does not need a password or an interactive session. Once the token is trusted, the integration user can perform normal API actions at scale, which makes exfiltration quieter and faster than many account takeovers.
A: Look for scope creep, unused permissions, unexpected API volume, and access from new IP ranges or proxy infrastructure. A healthy integration should have a clear owner, a limited purpose, and predictable API patterns. If the team cannot explain why the app still has access, the boundary is already being exceeded.
Q: Who is accountable when a third-party integration leaks customer data?
A: Accountability is shared, but the owning enterprise cannot outsource it. The vendor may have caused the compromise, yet the customer still owns app inventory, access approval, and offboarding discipline inside its own environment. That is why SaaS integration governance belongs in IAM and NHI oversight, not only in procurement or vendor management.
Technical breakdown
Compromised OAuth tokens turn integrations into standing access paths
OAuth tokens are delegated credentials, not usernames and passwords, but they still carry authority until revoked. When a third-party app is installed with broad scopes, the token can call APIs, export records, and impersonate integration workflows without triggering traditional login controls. The danger grows when refresh tokens remain active, because they extend the session far beyond the original approval event. In SaaS ecosystems, that creates a hidden privilege layer that often sits outside PAM review and outside normal user recertification cycles.
Practical implication: inventory every connected app, map its scopes, and treat refresh-token revocation as a core containment control, not a cleanup step.
App-to-app trust breaks the assumptions behind least privilege
Least privilege assumes the security team can define purpose, scope, and ownership at the time of provisioning. Third-party SaaS integrations often violate that assumption because business teams add access for convenience, then never revisit the original grant. The result is an access path that is technically authorised but operationally forgotten. In NHI terms, the credential may be machine-to-machine, but the governance problem is human: no one can confidently explain why the access still exists or whether it is still needed.
Practical implication: recertify third-party integrations on a fixed cadence and require a named business owner for every OAuth-connected app.
Bulk API activity is the best signal that token abuse has moved from testing to exfiltration
The attack pattern described by Astrix Security moved from token validation to testing and then to mass extraction, which is consistent with how credential abuse usually progresses once an attacker confirms access. In practice, the main evidence lives in event logs, bulk API calls, unusual user agents, and access from unexpected proxy infrastructure. That means detection must look for behaviour after authentication, not only failed logins. If the integration user can export data at scale, the attacker can do the same once the token is compromised.
Practical implication: baseline integration-user behaviour and alert on bulk export, abnormal user agents, and proxy-sourced API activity.
Threat narrative
Attacker objective: The objective was to turn compromised integration tokens into sustained access to Salesforce customer data and extract information at scale without touching user credentials.
- Entry occurred when threat actors obtained compromised third-party OAuth tokens tied to Gainsight applications connected to Salesforce.
- Credential access and validation followed through token testing, then preliminary data extraction attempts and finally mass exfiltration using the integration path.
- Impact was unauthorized access to customer instances and large-scale data extraction through trusted app-to-app connections rather than direct user compromise.
Breaches seen in the wild
- Salesloft OAuth token breach — hackers stole OAuth tokens to access Salesforce data via Salesloft.
- Shai Hulud npm malware campaign — Shai Hulud campaign: npm malware exposed secrets on GitHub.
Read our 52 NHI Breaches Analysis report for a comprehensive view of breaches impacting Non-Human Identities including AI Agents.
NHI Mgmt Group analysis
Third-party OAuth tokens are non-human identities, not just application settings. Once a token can call customer APIs with durable authority, it becomes an identity object that needs lifecycle ownership, scope review, and revocation discipline. Treating it as a connector hides the real governance problem. Practitioners need to manage these tokens as part of the NHI estate, not as incidental configuration.
Standing SaaS integration access creates identity blast radius. The breach shows how one compromised vendor integration can expose multiple customer instances and multiple connected systems at once. That is not a simple perimeter failure. It is a privilege propagation problem where one trusted relationship multiplies downstream access across Salesforce, Slack, identity, and support workflows. The implication is that integration scope must be understood before incident response starts.
Vendor access without lifecycle offboarding is the failure mode this breach exposes. The access existed because the trust relationship outlived its accountability boundary, and the token remained effective after the original security assumption had broken. That assumption was designed for stable, known business relationships. It fails when third-party access is granted once and left to persist across product changes, ownership changes, and incident response delays. Practitioners must rethink how offboarding works for external integrations.
Token revocation is only effective when discovery is complete. The article makes clear that customers may not know every place Gainsight was connected, which means revocation can be partial even when the central token is disabled. This is the operational weakness that NHI governance keeps surfacing: you cannot revoke what you cannot enumerate. The practical conclusion is that integration visibility and token lineage are inseparable.
52 NHI Breaches Analysis shows the same pattern across incidents. Credentialed non-human access repeatedly becomes the shortest route to sensitive data when ownership, scope, and revocation are weak. This incident fits that pattern closely, and it reinforces why NHI governance has to cover discovery, entitlement review, and offboarding together. Practitioners should treat recurring SaaS token abuse as a programme issue, not a one-off incident.
From our research:
- 28% of secrets incidents now originate outside code repositories, in Slack, Jira, and Confluence, and are 13% more likely to be categorised as critical than code-based leaks, according to The State of Secrets Sprawl 2026.
- 64% of valid secrets leaked in 2022 are still valid and exploitable today, which is why revocation discipline matters as much as detection.
- For a broader view of how secret exposure becomes an identity problem, see 52 NHI Breaches Analysis for recurring root causes and response patterns.
What this signals
Vendor integrations now need the same lifecycle discipline as any other non-human identity. The practical lesson from this incident is that ownership, scope review, and offboarding cannot stop at the SaaS boundary. Teams that still rely on periodic ad hoc cleanup will keep missing the long tail of connected apps and refresh tokens that survive organisational change.
A named concept emerges here: integration identity blast radius. It describes how one third-party token can propagate access across multiple enterprise systems when revocation and visibility are fragmented. That makes integration inventory a core control surface for IAM and NHI teams, not a back-office asset list.
The governance signal is clear. As secrets and tokens spread into collaboration tools and support systems, the enterprise loses the ability to prove where authority lives and when it should end. That means security programmes should treat connected-app discovery, token lineage, and revocation verification as continuous controls, not incident-only tasks.
For practitioners
- Revoke every connected-app token tied to the incident path Confirm that all Gainsight-connected access and refresh tokens are disabled, then verify the revocation state in each SaaS tenant that accepted the integration. Do not stop at the primary platform because secondary connections often remain active after the first token is removed.
- Audit third-party integrations by business owner and scope Build a current inventory of external apps connected to Salesforce and adjacent systems, then require a named owner, purpose, and scope justification for each one. Prioritise stale integrations, broad API scopes, and apps that were installed outside central IAM governance.
- Baseline integration-user behaviour for exfiltration signals Review event logs for bulk export calls, unusual user agents, and proxy-sourced access from integration users before and after revocation. Flag departures from normal API patterns as evidence of token abuse rather than waiting for user reports.
- Map all support-system spillover paths Search support tickets, notes, attachments, and collaboration tools for credentials or tokens that may have been shared with the affected vendor. If those systems were reachable from the compromised integration, assume the exposure window is wider than the primary SaaS app.
Key takeaways
- The breach shows that third-party OAuth tokens function as high-value non-human identities when they carry persistent authority into customer SaaS environments.
- The evidence points to a recurring exfiltration pattern, moving from token validation to testing and then mass data extraction once access was confirmed.
- The control that would have limited the damage is complete integration discovery followed by verified revocation and offboarding of every affected token path.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
OWASP Non-Human Identity Top 10 address the attack and risk surface, while NIST CSF 2.0 and NIST Zero Trust (SP 800-207) set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| OWASP Non-Human Identity Top 10 | NHI-03 | Token revocation and rotation are central to this breach pattern. |
| NIST CSF 2.0 | PR.AA-1 | Identity proofing and authentication controls fail when delegated access is unmanaged. |
| NIST Zero Trust (SP 800-207) | PR.AC-4 | Least privilege is violated when SaaS integrations retain broad, standing access. |
Verify every third-party OAuth grant and revoke unused tokens before they become persistent access paths.
Key terms
- OAuth Token: A token is a delegated credential that lets an application act on behalf of an approved user or service. In SaaS environments, it can function like a machine identity because it carries authority until it is expired, revoked, or otherwise invalidated.
- Non-Human Identity: A non-human identity is any machine, workload, service account, secret, certificate, or software agent that authenticates and performs actions in an environment. In practice, it is an identity object with scope, ownership, and lifecycle that needs governance like any other privileged access.
- Refresh Token: A refresh token is a long-lived credential used to obtain new access tokens without re-authentication. That convenience creates governance risk when the token survives long after the original approval should have ended, especially in third-party integrations that are rarely reviewed.
- Integration Blast Radius: Integration blast radius is the amount of enterprise access that can be reached if one connected application or token is compromised. It is determined by scope, downstream permissions, and the number of systems linked through the same trust chain.
What's in the full article
Astrix Security's full report covers the operational detail this post intentionally leaves for the source:
- The exact IOCs and IP indicators linked to the Gainsight access pattern, useful for immediate hunting and containment.
- The full list of affected app identifiers across Slack, Entra ID, Google Workspace, and Chrome integrations.
- The incident response sequence that Salesforce, Gainsight, and other SaaS vendors followed after unusual activity was detected.
- The specific customer-facing recommendations Astrix Security gives for revocation, validation, and follow-up monitoring.
Deepen your knowledge
OAuth-connected integration governance is a core topic in our NHI Foundation Level course, the industry's only accredited NHI security programme. If you are building a lifecycle and revocation process for third-party SaaS access, it is worth exploring.
Published by the NHIMG editorial team on 2025-11-21.
NHI Mgmt Group — the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org