プラットフォーム
python
コンポーネント
apache-airflow
修正版
2.1.3
2.1.3
CVE-2021-38540は、Apache Airflowの変数インポートエンドポイントにおける認証不備に起因するリモートコード実行(RCE)の脆弱性です。認証されていないユーザーがこのエンドポイントにアクセスし、DAGで使用されるAirflow変数を不正に操作できる可能性があります。この脆弱性は、Apache Airflow 2.0.0から2.1.3rc1までのバージョンに影響を与えます。バージョン2.1.3へのアップデートで修正されています。
この脆弱性を悪用されると、攻撃者はAirflow環境内のDAG(Directed Acyclic Graph)で使用される変数を自由に設定・変更することが可能になります。これにより、機密情報の漏洩、システムのDoS攻撃、さらにはリモートコード実行といった深刻な被害が発生する可能性があります。例えば、攻撃者は悪意のあるコードを含む変数を設定し、DAGの実行時にそのコードを実行させることが考えられます。Airflow環境の機密データ(APIキー、データベースパスワードなど)が漏洩するリスクも高まります。この脆弱性は、Airflowの運用を完全に掌握される可能性を秘めており、その影響範囲は非常に広範です。
CVE-2021-38540は、CISA KEV(Known Exploited Vulnerabilities)カタログに掲載されており、悪用が確認されています。公開されているPoC(Proof of Concept)コードが存在し、攻撃者が容易に脆弱性を悪用できる状況です。NVD(National Vulnerability Database)およびApache Airflowの公式セキュリティアドバイザリーで詳細が公開されています。攻撃者は、Airflow環境への侵入を試み、機密情報を窃取したり、システムを破壊したりする可能性があります。
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にアップデートすることを強く推奨します。アップデートが困難な場合は、変数インポートエンドポイントへのアクセスを制限するWAF(Web Application Firewall)ルールやプロキシ設定を実装することで、一時的な緩和策を講じることができます。また、Airflowの変数管理に関するアクセス制御を強化し、不要な変数の作成や変更を制限することも有効です。Airflowのログを監視し、不正な変数操作の兆候を早期に検知することも重要です。アップデート後、Airflowのバージョンを確認し、脆弱性が修正されていることを確認してください。
Apache Airflowをバージョン2.1.3以降にアップデートしてください。これにより、変数インポートエンドポイントの認証不備が修正され、不正アクセスや潜在的な攻撃を防ぐことができます。アップデートはpipまたはお好みのインストール方法で行うことができます。
脆弱性分析と重要アラートをメールでお届けします。
CVE-2021-38540は、Apache Airflow 2.0.0~2.1.3rc1において、認証なしで変数インポートエンドポイントにアクセスできる脆弱性です。攻撃者はAirflow変数を操作し、DoS、情報漏洩、リモートコード実行を引き起こす可能性があります。
Apache Airflowのバージョンが2.0.0から2.1.3rc1のいずれかである場合、この脆弱性の影響を受けます。バージョン2.1.3にアップデートしてください。
Apache Airflowをバージョン2.1.3にアップデートすることが推奨されます。アップデートが困難な場合は、WAFルールやプロキシ設定でアクセスを制限してください。
はい、CVE-2021-38540はCISA KEVカタログに掲載されており、悪用が確認されています。公開されているPoCコードも存在します。
Apache Airflowの公式アドバイザリーは、[https://airflow.apache.org/docs/security/advisories/CVE-2021-38540.html](https://airflow.apache.org/docs/security/advisories/CVE-2021-38540.html)で確認できます。
requirements.txt ファイルをアップロードすると、影響の有無を即座にお知らせします。