Apache Airflow敏感信息泄露漏洞CVE-2025-54831
Apache Airflow是一个以编程方式创作,计划和监视工作流平台,虽然不是流解决方案,但通常用于处理实时数据,从流中批量提取数据。
一、基本情况
Apache Airflow 是一个开源的分布式任务调度平台,平台使用DAG(有向无环图)来编排工作流,且支持任务依赖关系管理和自动化调度。
Airflow 通常用于处理数据,但认为理想情况下任务应该是幂等的(即任务的结果将是相同的,并且不会在目标系统中创建重复的数据)。
栋科技漏洞库关注到Apache Airflow 3.0.3 版本中存在一个严重安全漏洞,该漏洞现在已经被追踪为CVE-2025-54831,CVSS评分为7.5。
二、漏洞分析
CVE-2025-54831漏洞是存在于 Apache Airflow 3.0.3 版本中存在的严重安全漏洞,会导致仅具备读取权限的用户能够获取敏感连接信息。
该漏洞源于Airflow 3.0引入的连接访问控制系统实现不当,具体而言,尽管Apache Airflow 3对Connections中敏感信息的处理进行了更改。
其目的是将敏感连接字段的访问权限限制为连接编辑用户,从而有效地对敏感值应用“write-only”模型,Airflow 3.0.3无意中违反了该模型,
导致具有READ权限用户通过API和UI查看敏感连接信息且绕过“AIRFLOW_CORE_HIDE_SENSITIVE_WAR_CONN_FIELDS”配置选项。
因此,该安全漏洞直接导致仅具备读取权限的用户能够获取敏感连接信息,从根本上破坏了该平台处理工作流连接中敏感数据的安全模型。
这种信息泄露不受AIRFLOW__CORE__HIDE_SENSITIVE_VAR_CONN_FIELDS配置影响,该设置用于向未授权用户屏蔽敏感连接详情。
该漏洞实质上使安全配置失效,给依赖Airflow访问控制的组织带来重大风险,3.0.3版本实现存在严重缺陷,导致这些安全改进措施失效。
该漏洞使得具有标准READ权限的用户能够通过Airflow API和Web用户界面访问敏感连接信息。
具有READ权限的用户通过/api/v1/connections/{connection_id}端点查询连接详情或通过Web UI访问连接界面时,系统错误返回隐藏数据。
本应隐藏的敏感字段如下,包括密码、令牌和连接字符串。
{
"connection_id": "postgres_default",
"conn_type": "postgres",
"host": "localhost",
"login": "airflow",
"password": "exposed_sensitive_data",
"schema": "airflow",
"port": 5432
}
需要说明的是,漏洞仅影响Apache Airflow 3.0.3版本,Airflow 2.x版本不受影响,后者将敏感信息暴露给连接编辑器是预期和记录的行为。
具体来说,因为Airflow 2.x版本遵循不同的连接处理协议在这些版本中,向连接编辑者公开敏感信息是文档记录的正常行为。
三、影响范围
2.x版 < Apache Airflow <= 3.0.3
四、修复建议
Apache Airflow 3.0.3 >= 3.0.4
五、参考链接
