Apache Airflowの脆弱性により、読み取り専用ユーザーが機密データにアクセス可能に

概要

Apache Airflowのメンテナーは、読み取り権限のみを持つユーザーがAirflow APIおよびWebインターフェースを介して機密性の高い接続詳細を閲覧できる深刻なセキュリティ問題、CVE-2025-54831を公開しました。この脆弱性はAirflowバージョン3.0.3に存在し、資格情報やその他の機密設定データの不正な露出につながる可能性があります。

Apache Airflowは、データパイプラインのスケジュールと監視に広く採用されているオープンソースのワークフローオーケストレーションプラットフォームです。Airflow 3.0.0のリリースに伴い、プロジェクトはConnectionオブジェクト内の機密情報に対するより厳格なセキュリティモデルを導入しました。このモデルでは、パスワード、トークン、プライベートキーなどのフィールドはデフォルトでマスクされ、明示的なConnection編集(書き込み)権限を持つユーザーにのみ表示されることになっていました。読み取り専用ユーザーは、非機密メタデータの閲覧に制限されていました。

脆弱性の詳細

しかし、Airflow 3.0.3の実装上の見落としにより、読み取り専用ユーザーが機密性の高い値を完全に取得することが意図せず許可されていました。この問題は、コミュニティメンバーのKaxil Naikによって2025年9月25日に開発者メーリングリストで公開され、その後「重要」な深刻度評価でCVE-2025-54831が割り当てられました。

Airflow 3.0.3では、Connection詳細を取得するためのAPIエンドポイントと対応するUIビューの両方が、AIRFLOW__CORE__HIDE_SENSITIVE_VAR_CONN_FIELDS設定をバイパスしていました。このフラグが有効になっている場合、パスワード、ホスト、ポート、カスタムエクストラなどのフィールドはJSONレスポンスおよびUI表示で非表示になるはずでした。しかし、実際には、読み取り専用ユーザーは/api/v1/connections/{connection_id}に対してHTTP GETリクエストを実行したり、WebインターフェースのConnection詳細ページに移動したりすることで、これらのフィールドをプレーンテキストで表示できました。

影響を受ける要素には、以下が含まれますが、これらに限定されません。

  • データベースの資格情報(ユーザー名、パスワード)
  • クラウドプロバイダーのアクセスキーとシークレット
  • SSHプライベートキー
  • APIトークンやその他のシークレットを含む追加のJSONフィールドデータ

影響

Airflow Connectionsは高特権サービス資格情報の保存に頻繁に使用されるため、不正な読み取りアクセスは重大なリスクをもたらします。読み取り専用ロールを持つ攻撃者または内部関係者は、サービスアカウントキー、クラウド資格情報、または暗号化キーを不正に持ち出し、ダウンストリームのワークロード、データストア、またはクラウド環境全体を危険にさらす可能性があります。

この脆弱性は書き込みレベルの変更やリモートコード実行を許可しませんが、資格情報の露出は、侵害された環境内での横方向の移動、特権昇格、およびデータ流出を促進する可能性があります。攻撃者は、露出したキーを利用して、資格情報の不正使用に対する標準的な監査証跡をトリガーすることなく、本番データベース、クラウドサービス、およびシークレットストアに侵入する可能性があります。

Airflowで厳格なロールベースのアクセス制御(RBAC)を適用し、広範なユーザーベースに読み取り権限を付与している組織は、特に危険にさらされます。マルチテナント設定で共有または自己ホスト型のAirflowデプロイメントを使用しているチームは、この脆弱性をプラットフォームの機密性保証における重大な欠陥と見なすべきです。

緩和策と推奨事項

Apache Airflowプロジェクトは、バージョン3.0.4でこの問題に対処し、書き込み専用のマスキング動作を再強化し、AIRFLOW__CORE__HIDE_SENSITIVE_VAR_CONN_FIELDS設定の尊重を回復しました。Airflow 3.0.3のすべてのユーザーは、直ちにアップグレードすることが強く推奨されます。

  • アップグレードコマンド: pip install --upgrade apache-airflow>=3.0.4

すぐにアップグレードできないオペレーターは、Airflowウェブサーバーの前にプロキシまたはAPIゲートウェイをデプロイすることで一時的な回避策を実装できます。プロキシは、/api/v1/connections/*エンドポイントで機密性の高いJSONフィールドをフィルタリングまたはマスクする必要があります。さらに、Airflow設定で次の環境変数が設定されていることを確認してください。

  • 環境変数: AIRFLOW__CORE__HIDE_SENSITIVE_VAR_CONN_FIELDS=True

ただし、このフラグが設定されていても、3.0.4へのアップグレードが唯一の保証された修正です。

結論

CVE-2025-54831は、ワークフローオーケストレーションプラットフォーム内でのシークレットの保護の複雑さを浮き彫りにしています。Airflowの採用がデータチーム全体で拡大するにつれて、サービス資格情報の機密性を維持することが最も重要になります。管理者は、潜在的な侵害を軽減するために、速やかにAirflow 3.0.4にアップグレードし、RBACポリシーを監査し、露出した接続を介してアクセスされるダウンストリームシステムを確認する必要があります。警戒とタイムリーなパッチ管理が、このような機密データ露出に対する最善の防御策です。


元記事: https://gbhackers.com/apache-airflow-vulnerability-lets-read-only-users-access-sensitive-data/