CVE-2021-38540 是 Apache Airflow 中发现的一个远程代码执行 (RCE) 漏洞。由于变量导入端点缺乏身份验证保护,攻击者可以利用此漏洞修改 DAG 中使用的 Airflow 变量,从而导致拒绝服务、信息泄露或远程代码执行。该漏洞影响 Apache Airflow 2.0.0 及更高版本,但低于 2.1.3 的版本。建议尽快升级至 2.1.3 版本以修复此安全问题。
此漏洞的潜在影响非常严重。攻击者可以通过修改 Airflow 变量来执行任意代码,从而完全控制受影响的系统。例如,攻击者可以修改 DAG 中的变量,使其执行恶意脚本,从而窃取敏感数据、破坏系统或发起进一步的攻击。由于变量导入端点未进行身份验证,任何未经授权的用户都可以利用此漏洞,这使得攻击面非常广泛。攻击者可能利用此漏洞进行数据泄露,例如访问数据库凭据或敏感业务数据。此外,攻击者还可以利用此漏洞进行横向移动,攻击其他连接到 Airflow 集群的系统。
CVE-2021-38540 已被公开披露,并具有较高的利用概率。目前尚未观察到大规模的利用活动,但由于漏洞的严重性和易利用性,预计未来可能会出现利用。该漏洞已添加到 CISA KEV 目录中,表明其具有重要的安全风险。已公开可用的概念验证代码 (POC) 证明了该漏洞的可利用性。
Organizations heavily reliant on Apache Airflow for orchestrating complex workflows are at significant risk. Specifically, deployments with publicly accessible Airflow instances or those lacking robust network segmentation are particularly vulnerable. Airflow installations using older versions (prior to 2.1.3) and those with limited security monitoring are also at heightened risk.
• python / airflow:
import requests
import json
url = "http://<airflow_host>/api/v1/variables/import"
headers = {'Content-Type': 'application/json'}
data = {'key': 'test_variable', 'value': 'malicious_code'}
try:
response = requests.post(url, headers=headers, data=json.dumps(data))
print(f"Response Status Code: {response.status_code}")
print(f"Response Content: {response.content}")
except requests.exceptions.RequestException as e:
print(f"Error: {e}")• linux / server: Monitor Airflow logs for unusual variable import activity or errors related to variable manipulation. Use journalctl -u airflow to filter for relevant log entries.
• generic web: Check Airflow server access logs for requests to /api/v1/variables/import originating from unexpected IP addresses or user agents.
disclosure
patch
漏洞利用状态
EPSS
91.78% (100% 百分位)
CVSS 向量
最有效的缓解措施是立即升级至 Apache Airflow 2.1.3 或更高版本。如果无法立即升级,可以考虑以下临时缓解措施:首先,限制对变量导入端点的访问,只允许授权用户访问。其次,实施严格的输入验证,以防止攻击者注入恶意代码。第三,监控 Airflow 日志,以检测任何可疑活动。如果升级导致问题,可以考虑回滚到之前的版本,并同时实施上述缓解措施。可以使用 WAF 或代理来过滤对变量导入端点的请求,阻止恶意请求。建议配置 Airflow 的安全组,限制对变量导入端点的网络访问。
升级 Apache Airflow 到 2.1.3 或更高版本。这修复了变量导入端点的身份验证缺失问题,防止未经授权的访问和潜在攻击。升级可以通过 pip 或首选的安装方法进行。
漏洞分析和关键警报直接发送到您的邮箱。
CVE-2021-38540 是 Apache Airflow >=2.0.0, <2.1.3 版本中发现的一个远程代码执行漏洞,攻击者可以利用未授权访问变量导入端点来执行恶意代码。
如果您正在使用 Apache Airflow 2.0.0 及更高版本,但低于 2.1.3 的版本,则您可能受到此漏洞的影响。
升级至 Apache Airflow 2.1.3 或更高版本是修复此漏洞的最佳方法。
虽然目前尚未观察到大规模的利用活动,但由于漏洞的严重性和易利用性,预计未来可能会出现利用。
您可以在 Apache Airflow 安全公告中找到官方公告:https://airflow.apache.org/docs/security/advisories.html
上传你的 requirements.txt 文件,立即知道是否受影响。