CVE-2026-42526 Overview
CVE-2026-42526 is an authorization flaw [CWE-863] in the apache-airflow-providers-amazon package affecting the AWS Secrets Manager and SSM Parameter Store secrets backends. Versions prior to 9.28.0 resolve a conn_id containing a / character to the same storage path as another team's team-scoped secret. A privileged caller without team context can craft a colliding conn_id such as "my_team/conn" to retrieve another team's secret. The issue affects only the experimental multi-tenant teams feature. The maintainers fixed the flaw in 9.28.0 by switching the team-scope separator to -- and rejecting team-shaped conn_id values when team context is absent.
Critical Impact
Cross-tenant secret disclosure between Airflow teams using AWS Secrets Manager or SSM Parameter Store as the secrets backend.
Affected Products
- apache-airflow-providers-amazon versions prior to 9.28.0
- Airflow deployments using the AWS Secrets Manager secrets backend with the experimental multi-tenant teams feature
- Airflow deployments using the AWS SSM Parameter Store secrets backend with the experimental multi-tenant teams feature
Discovery Timeline
- 2026-05-19 - CVE-2026-42526 published to NVD
- 2026-05-19 - Last updated in NVD database
Technical Details for CVE-2026-42526
Vulnerability Analysis
The vulnerability resides in the team-scoping logic of the AWS Secrets Manager and SSM Parameter Store secrets backends shipped with apache-airflow-providers-amazon. The backends construct a parameter or secret path by combining a team identifier with the conn_id using / as the separator. Because / is also a valid character within conn_id values, the path constructed for an unscoped caller using a conn_id like "my_team/conn" collides with the path produced for the conn connection under the my_team scope. A privileged caller operating without team context can read secrets belonging to a different team by submitting a crafted conn_id. The flaw maps to [CWE-863] Incorrect Authorization, as the access control decision relies on a separator that is indistinguishable from legitimate identifier content.
Root Cause
The root cause is a structural ambiguity in the secret path format. The / separator used to delimit the team scope is not reserved, so user-supplied conn_id values can reproduce the same canonical path as another team's secret. The backend treats both paths as equivalent and returns the stored secret without verifying that the caller's team context matches the team encoded in the resolved path.
Attack Vector
Exploitation requires an authenticated, privileged caller that lacks team context and the ability to specify an arbitrary conn_id when querying the secrets backend. The attacker submits a conn_id shaped like "<victim_team>/<victim_conn>". The backend resolves this to the AWS Secrets Manager or SSM parameter path used by the victim team and returns the secret value. No network-level exploitation primitive is required beyond authenticated access to Airflow's connection or variable lookup path. Confidentiality of cross-team credentials is the primary impact; integrity and availability are not affected.
No public proof-of-concept code is referenced in the advisory. See the GitHub Airflow Pull Request and Apache Mailing List Thread for the technical fix details.
Detection Methods for CVE-2026-42526
Indicators of Compromise
- AWS CloudTrail GetSecretValue or GetParameter events referencing secret or parameter names that contain a / inside the segment normally treated as the conn_id.
- Airflow audit logs showing connection or variable lookups with conn_id values containing / characters issued by callers without an associated team context.
- Unexpected secretsmanager:GetSecretValue or ssm:GetParameter calls from Airflow worker or scheduler IAM roles targeting paths owned by another team.
Detection Strategies
- Parse Airflow task and scheduler logs for conn_id values containing / and correlate them with the caller's team attribute.
- Build a CloudTrail query that flags secret retrievals where the secret path's team component does not match the principal's expected team tag.
- Compare the version of apache-airflow-providers-amazon reported by pip show or the Airflow providers page against 9.28.0 across all schedulers, workers, and triggerers.
Monitoring Recommendations
- Stream CloudTrail data events for AWS Secrets Manager and SSM Parameter Store into your SIEM and alert on cross-team path access patterns.
- Monitor Airflow REST API and CLI invocations of connection and variable endpoints for conn_id values that resemble <team>/<name>.
- Track package inventory across all Airflow components to detect deployments still running vulnerable provider versions.
How to Mitigate CVE-2026-42526
Immediate Actions Required
- Upgrade apache-airflow-providers-amazon to version 9.28.0 or later on all Airflow schedulers, workers, triggerers, and web servers.
- Audit existing connection identifiers in your Airflow metadata database for any conn_id values containing / and rename them to avoid the team-shaped pattern.
- Review CloudTrail logs covering the period the experimental teams feature was enabled to identify any historical cross-team secret access.
Patch Information
The issue is fixed in apache-airflow-providers-amazon9.28.0. The patch changes the team-scope separator from / to -- and rejects team-shaped conn_id values when team context is absent. The complete fix is published in the GitHub Airflow Pull Request and announced via the Apache Mailing List Thread and the OpenWall OSS-Security Update.
Workarounds
- Disable the experimental multi-tenant teams feature until the provider package is upgraded to 9.28.0.
- Enforce a naming policy that forbids the / character in any Airflow conn_id referenced by AWS Secrets Manager or SSM Parameter Store backends.
- Apply IAM scoping so that Airflow worker roles can only read secrets under the team prefix they legitimately serve, limiting blast radius if a collision is attempted.
# Configuration example: upgrade the provider package to the fixed version
pip install --upgrade "apache-airflow-providers-amazon>=9.28.0"
# Verify the installed version
pip show apache-airflow-providers-amazon | grep -i version
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

