CVE-2026-89105
Executive Summary
CVE-2026-89105 is an authentication trust-boundary flaw in the HybridTokenAuthenticator component of the SAP cloud-security-services-integration-library. The component accepts bearer tokens issued from unintended ambient Identity Authentication Service (IAS) or XSUAA bindings, meaning a token that was legitimately issued for a different relying party or binding context can be accepted as valid by a target application that should have rejected it. The result is unauthorized access with a low confidentiality and integrity impact, rated CVSS 4.2 (Medium). Applications that integrate this library for token validation are affected; no patch, public PoC, or in-the-wild exploitation evidence currently exists, but the flaw class (audience/issuer validation failure) is well understood and trivially reachable by any authenticated low-privilege user holding a valid but mis-scoped token.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
The vulnerability maps to CWE-1188 (Insecure Default Initialization of Resource). The affected component, HybridTokenAuthenticator, is responsible for validating tokens presented to an application that relies on the SAP cloud-security-services-integration-library for OAuth2/JWT-based authentication against SAP Business Technology Platform security services (IAS and XSUAA).
The core defect, as described, is that the authenticator accepts tokens originating from "unintended ambient IAS/XSUAA bindings." In practical terms, the token validation logic does not correctly constrain which issuer/audience/binding the presented token must belong to. When a runtime environment has multiple service bindings present — a common condition in multi-tenant, multi-space, or shared deployment topologies — tokens issued for one binding can be validated and accepted against a relying party that belongs to a different binding. Because the library performs "hybrid" validation across both IAS and XSUAA token types, the trust set is broader than intended.
This is an authorization-context confusion / audience validation failure class of vulnerability, not a cryptographic break. The token itself is valid and properly signed; the defect is that the acceptance criteria are too permissive. An attacker does not need to forge a token; they need only possess a token that was legitimately issued in an ambient binding context reachable from or shared with the target.
Exploitation requires:
- Network reachability to a service that uses the library (
AV:N). - Some existing low-privileged credential to obtain a token in an unintended binding (
PR:L). - Conditions where an ambient/adjacent binding is present (
AC:H— depends on deployment topology).
Successful exploitation yields limited confidentiality and integrity (C:L, I:L) and no availability impact (A:N). No user interaction is required (UI:N), and the scope is unchanged (S:U).
Insufficient technical detail is available publicly to identify the specific token claim validation routine, the exact library version boundary, or the precise binding-resolution logic. Affected versions have not been enumerated by the vendor at time of writing.
Exploitation Scenarios
No public PoC is available; the attack chain below is inferred from the vulnerability class (audience/issuer/binding validation failure) and the NVD description only. No specific function names, endpoints, or parameters are invented below.
Reconnaissance / target identification. The attacker identifies a target application built on the SAP
cloud-security-services-integration-librarythat performs token validation viaHybridTokenAuthenticator. Such applications are commonly SAP BTP-hosted services that validate caller JWTs. The attacker enumerates which IAS and XSUAA bindings are ambient to the deployment — for example, by observing shared/subaccount bindings, leaked configuration, or multi-tenant environments where binding contexts overlap.Triggering the flaw class. The attacker obtains a valid token that was issued under an unintended ambient IAS or XSUAA binding — not necessarily one intended for the target service. Because
HybridTokenAuthenticatorfails to correctly enforce which binding/audience a token must belong to, it accepts the mis-scoped token. The attack succeeds through token binding confusion, not token forgery.Payload / execution method. The attacker presents the mis-scoped bearer token to the target service's authentication path. The authenticator — performing hybrid IAS/XSUAA validation with over-permissive acceptance criteria — validates the token as accepted, and the request proceeds as an authenticated session. No injection, deserialization, or memory-corruption primitive is involved.
Post-exploitation impact. The attacker gains unauthorized access to whatever the target service exposes to the confused identity — reading or modifying limited data (
C:L,I:L). The blast radius is bounded by the privileges of the binding under which the token was issued, but cross-binding acceptance can violate tenant isolation boundaries. No availability impact is expected.
Impact Assessment
- Confidentiality (Low): Unauthorized read access to resources the target service exposes to the confused identity.
- Integrity (Low): Potential unauthorized modification within the accepted binding's permitted scope.
- Availability (None): No denial-of-service primitive.
- Attack Vector (Network): Reachable remotely; no physical or adjacent-only requirement.
- Attack Complexity (High): Depends on the presence of an unintended ambient binding — a topology/environment precondition, not an inherent protocol weakness.
- Privileges Required (Low): Attacker must already hold a valid token from some allowed binding context.
- User Interaction (None): No victim action needed.
Business impact: In multi-tenant or shared-subaccount SAP BTP deployments, cross-binding token acceptance can breach tenant isolation and violate the principle of least privilege. Because HybridTokenAuthenticator is a library component, the true blast radius spans every application that depends on it and has not constrained its acceptance criteria — the affected surface is potentially wide even though per-instance impact is limited. Regulatory exposure arises in environments where token-scope separation is a compliance control (e.g., data-residency and tenant-isolation requirements).
Detection Guidance
Sigma Rule
title: Potential SAP HybridTokenAuthenticator Cross-Binding Token Acceptance
id: 5f2a9c11-8e3b-4c7d-9a10-3b6e1f0d2c84
status: experimental
description: Detects authentication events where a token issued for one IAS/XSUAA binding is accepted by a service bound to a different binding context, indicative of CVE-2026-89105.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-89105
author: valtersit.com
date: 2026/01/01
logsource:
category: application
product: sap
detection:
selection_auth:
event_type:
- 'token_validation_success'
- 'authentication_success'
selection_component:
component|contains: 'HybridTokenAuthenticator'
selection_mismatch:
token_audience|exists: true
service_binding|exists: true
condition: token_audience != service_binding
condition: selection_auth and selection_component and selection_mismatch
fields:
- src_ip
- user
- token_issuer
- token_audience
- service_binding
falsepositives:
- Legitimate multi-binding services configured intentionally to share trust
level: medium
tags:
- attack.t1078
- cve.2026.89105
YARA Rule
rule CVE_2026_89105_SAP_HybridTokenAuthenticator
{
meta:
description = "Detects SAP cloud-security-services-integration-library artifacts referencing HybridTokenAuthenticator"
author = "valtersit.com"
date = "2026-01-01"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-89105"
cve = "CVE-2026-89105"
strings:
$lib1 = "cloud-security-services-integration-library" ascii wide nocase
$cls1 = "HybridTokenAuthenticator" ascii wide
$ias1 = "IAS" ascii wide
$xsuaa1 = "XSUAA" ascii wide
$bind1 = "binding" ascii wide nocase
condition:
($lib1 or $cls1) and ($ias1 or $xsuaa1) and $bind1
}
Suricata IDS Rule
alert http any any -> any any (msg:"CVE-2026-89105 SAP HybridTokenAuthenticator cross-binding token acceptance attempt"; flow:established,to_server; http.header; content:"Authorization"; nocase; content:"Bearer"; nocase; pcre:"/Bearer\s+[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/"; reference:cve,2026-89105; reference:url,nvd.nist.gov/vuln/detail/CVE-2026-89105; classtype:attempted-user; sid:202689105; rev:1;)
Elastic Detection
sequence by user.name, source.ip with maxspan=5m
[ authentication where event.outcome == "success" and
sap.component == "HybridTokenAuthenticator" and
token.audience != null and service.binding != null and
token.audience != service.binding ]
Splunk SPL Query
index=sap_security sourcetype=sap:auth
| search component="HybridTokenAuthenticator" event_type="token_validation_success"
| eval audience_mismatch=if(isnotnull(token_audience) AND isnotnull(service_binding) AND token_audience!=service_binding, 1, 0)
| where audience_mismatch=1
| table _time src_ip user token_issuer token_audience service_binding
| sort - _time
Wazuh OSSEC Rule
<group name="sap,authentication,cve-2026-89105,">
<rule id="2026891" level="8">
<decoded_as>json</decoded_as>
<field name="component">HybridTokenAuthenticator</field>
<field name="event_type">token_validation_success</field>
<description>CVE-2026-89105: SAP HybridTokenAuthenticator accepted token from unintended IAS/XSUAA binding</description>
<mitre>
<id>T1078</id>
</mitre>
<group>cve_2026_89105,</group>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 0/4 — UNPATCHED. No vendor fix, advisory, or version-specific patch has been identified from any tracked source. Affected versions remain unenumerated.
Immediate mitigations
- Enforce strict audience and issuer validation at the application layer, independent of
HybridTokenAuthenticator— reject any token whoseaud/issdoes not exactly match the target service's expected binding. - Where multiple IAS/XSUAA bindings are ambient, isolate deployments so that only the intended binding is resolvable from each runtime. Reduce binding overlap in shared/subaccount topologies.
- Apply least-privilege scopes to all issued tokens so that a confusion event cannot yield broad access.
- Monitor authentication logs for token-audience-vs-binding mismatches using the detections above.
- Enforce strict audience and issuer validation at the application layer, independent of
Patch / upgrade steps
- Track the SAP
cloud-security-services-integration-libraryrelease channel and SAP security notes for an official fix; apply as soon as one is published. No patch currently exists, so no upgrade step can be specified.
- Track the SAP
Long-term hardening
- Adopt strict token-binding contracts (explicit audience pinning) in all service integrations.
- Eliminate "ambient binding" trust patterns; require explicit, per-service binding configuration.
- Include audience/issuer confusion tests in regular auth-boundary testing and CI security gates.
- Maintain inventory of all services consuming the affected library to enable rapid response when a fix ships.
References
- NVD — CVE-2026-89105: https://nvd.nist.gov/vuln/detail/CVE-2026-89105
- CWE-1188 — Insecure Default Initialization of Resource: https://cwe.mitre.org/data/definitions/1188.html
- MITRE ATT&CK T1078 — Valid Accounts: https://attack.mitre.org/techniques/T1078/
- SAP Product Security / Security Notes portal: https://support.sap.com/en/my-support/knowledge-base/security-notes-news.html
- SAP cloud-security-services-integration-library (repository/project reference): https://github.com/SAP/cloud-security-services-integration-library
Threat actor / exploitation status: No public PoC, no Nuclei template, no exploit code, and no CISA KEV listing. No known threat actor campaigns or in-the-wild exploitation evidence exist for CVE-2026-89105 at time of writing. EPSS has not yet scored this CVE.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.