/

CVE-2026-86467

Severity:

HIGH RISK

(8.8)

Login CSRF (CWE-352) in Apache Airflow AWS SAML Auth

CVE-2026-86467

Awaiting Analysis

Vulnerability type

Category:

Cross-Site Request Forgery

CWE:

CWE-352

Impact:

Account Confusion and Unauthorized Action Attribution

Severity:

HIGH RISK

(8.8)

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

Apache Airflow's AWS authentication manager does not properly bind a SAML authentication response to the browser session that initiated the login. An attacker who controls a page can cause a victim's browser to sign in to the attacker's Airflow account, potentially causing the victim's subsequent actions to be recorded in a session controlled by the attacker.

Apache Airflow's AWS authentication manager does not properly bind a SAML authentication response to the browser session that initiated the login. An attacker who controls a page can cause a victim's browser to sign in to the attacker's Airflow account, potentially causing the victim's subsequent actions to be recorded in a session controlled by the attacker.

Affected context

The issue affects deployments using the Apache Airflow Amazon provider's AWS authentication manager with SAML authentication. It occurs when the SAML login flow does not preserve the original authentication request identifier and the callback accepts an assertion without requiring a matching response binding.

The issue affects deployments using the Apache Airflow Amazon provider's AWS authentication manager with SAML authentication. It occurs when the SAML login flow does not preserve the original authentication request identifier and the callback accepts an assertion without requiring a matching response binding.

Exploit preconditions

  • Attack surface: SAML login and callback endpoints exposed by an Airflow deployment
  • Required access: No Airflow account or credentials are required for the attacker
  • Victim condition: The victim must visit an attacker-controlled page while using a browser that can access the Airflow deployment
  • Trigger point: The browser processes the attacker-induced SAML login flow
  • Why exploitation is possible: The callback does not require the SAML response to reference the authentication request initiated by the victim's browser
  • Attack surface: SAML login and callback endpoints exposed by an Airflow deployment
  • Required access: No Airflow account or credentials are required for the attacker
  • Victim condition: The victim must visit an attacker-controlled page while using a browser that can access the Airflow deployment
  • Trigger point: The browser processes the attacker-induced SAML login flow
  • Why exploitation is possible: The callback does not require the SAML response to reference the authentication request initiated by the victim's browser

Why this happens

The authentication flow discards the SAML AuthnRequest identifier and fails to enforce a matching InResponseTo value when processing the assertion. This breaks the relationship between the browser that initiated authentication and the response that completes it, allowing an attacker-supplied login response to be accepted in another user's browser. The behavior maps to CWE-352: Cross-Site Request Forgery, specifically a login-CSRF condition.

The authentication flow discards the SAML AuthnRequest identifier and fails to enforce a matching InResponseTo value when processing the assertion. This breaks the relationship between the browser that initiated authentication and the response that completes it, allowing an attacker-supplied login response to be accepted in another user's browser. The behavior maps to CWE-352: Cross-Site Request Forgery, specifically a login-CSRF condition.

Potential impact

  • The victim may be silently logged into the attacker's Airflow account
  • Actions performed by the victim may be recorded in a session controlled by the attacker
  • Sensitive information entered or generated during the session could be exposed to the attacker
  • Operational changes may be attributed to the wrong account
  • Workflow or administrative activity could be performed under unintended account context
  • The victim may be silently logged into the attacker's Airflow account
  • Actions performed by the victim may be recorded in a session controlled by the attacker
  • Sensitive information entered or generated during the session could be exposed to the attacker
  • Operational changes may be attributed to the wrong account
  • Workflow or administrative activity could be performed under unintended account context

General mitigation guidance

Mitigation generally focuses on binding every SAML response to the authentication transaction that initiated it.

Common defensive patterns include:

  • Preserve an unpredictable, single-use AuthnRequest identifier for the complete login flow
  • Require a valid matching InResponseTo value before accepting a SAML assertion
  • Expire and invalidate authentication state after successful or failed completion
  • Apply same-site, secure, and appropriately scoped cookie protections
  • Use explicit confirmation or reauthentication for sensitive account-context changes
  • Limit session privileges and separate authentication from authorization decisions

Mitigation generally focuses on binding every SAML response to the authentication transaction that initiated it.

Common defensive patterns include:

  • Preserve an unpredictable, single-use AuthnRequest identifier for the complete login flow
  • Require a valid matching InResponseTo value before accepting a SAML assertion
  • Expire and invalidate authentication state after successful or failed completion
  • Apply same-site, secure, and appropriately scoped cookie protections
  • Use explicit confirmation or reauthentication for sensitive account-context changes
  • Limit session privileges and separate authentication from authorization decisions

How teams detect issues like this

Organizations can assess this issue through:

  • Static analysis and code review checks for SAML callbacks that omit InResponseTo validation
  • Tests that attempt to complete a login with a response created for a different browser or request
  • Review of authentication state handling, including request identifiers, expiration, and single-use enforcement
  • Monitoring for unusual login sequences, mismatched request and response identifiers, or unexpected account-context changes
  • Policy enforcement requiring state binding for SAML, OAuth, and other browser-based authentication flows

Automated security review tools may help identify missing CSRF-state validation, but runtime tests should verify the complete identity-binding behavior.

Organizations can assess this issue through:

  • Static analysis and code review checks for SAML callbacks that omit InResponseTo validation
  • Tests that attempt to complete a login with a response created for a different browser or request
  • Review of authentication state handling, including request identifiers, expiration, and single-use enforcement
  • Monitoring for unusual login sequences, mismatched request and response identifiers, or unexpected account-context changes
  • Policy enforcement requiring state binding for SAML, OAuth, and other browser-based authentication flows

Automated security review tools may help identify missing CSRF-state validation, but runtime tests should verify the complete identity-binding behavior.

Sources

SourceLink
github.comgithub.com/apache/airflow/pull/73698
lists.apache.orglists.apache.org/thread/xr9d2jyk9qpglsmromt6vjl4s9jb5qn8
cve.orgcve.org/CVERecord?id=CVE-2026-40948

Frequently asked

questions

Yes. The attacker generally needs only to cause a victim to visit an attacker-controlled page while the victim can access the affected Airflow deployment.

No. The described attack uses the attacker's own SAML assertion and does not require the attacker to possess an Airflow account or credential.

Bind each SAML response to the browser's original authentication request and require a matching, valid, single-use InResponseTo value before creating a session.

Apply state-binding requirements consistently across browser authentication protocols, test cross-session response substitution, use secure cookie settings, and monitor for mismatched authentication transactions.

Yes. The attacker generally needs only to cause a victim to visit an attacker-controlled page while the victim can access the affected Airflow deployment.

No. The described attack uses the attacker's own SAML assertion and does not require the attacker to possess an Airflow account or credential.

Bind each SAML response to the browser's original authentication request and require a matching, valid, single-use InResponseTo value before creating a session.

Apply state-binding requirements consistently across browser authentication protocols, test cross-session response substitution, use secure cookie settings, and monitor for mismatched authentication transactions.

Find out what's already
exploitable in your codebase.