CERNのRucioにおけるSQL インジェクションの脆弱性

JVNDB

概要

`FilterEngine.create_sqla_query()` におけるSQLインジェクション脆弱性により、認証済みの任意のRucioユーザーがDID検索エンドポイント(`GET /dids/scope/dids/search`)を介してバックエンドデータベースに対して任意のSQLを実行できます。Oracle環境では攻撃者が制御するフィルターキーと値がPythonの `.format()` によって `sqlalchemy.text()` に直接挿入され、パラメータ化を完全にバイパスします。これにより認証トークン、パスワードハッシュ、すべての管理データ識別子の抽出を含むデータベース全体の完全な侵害が可能となります。本脆弱性はバージョン1.27.0以降から35.8.5、38.5.5、39.4.2、40.1.1より前のバージョンに影響します。脆弱性は `lib/rucio/core/did_meta_plugins/filter_engine.py` の `create_sqla_query()` メソッドに存在し、データベース方言がOracleの場合、JSONメタデータカラムのフィルター式がPython文字列フォーマットを用いた `text()` によって構築されます。`key` と `value` はHTTPクエリパラメータに由来する攻撃者制御の文字列であり、`text()` は内容のエスケープやパラメータ化を行わない生のSQLフラグメントを生成します。認証済みの任意のRucioユーザーはDID検索APIを介してこれを悪用でき、バックエンドデータベースに対して任意のSQLを実行可能で、すべての管理データ識別子および識別子、トークン、アカウント、rse_settings、ルールなどの機密テーブルの情報漏洩やデータベース内容の変更を引き起こす可能性があります。本問題はデフォルトのjson_metaプラグインを使用するOracle環境に影響し、PostgreSQLやMySQL環境には影響しません。本脆弱性はバージョン35.8.5、38.5.5、39.4.2、40.1.1で修正されています。

技術情報

  • 公開日: 2026-05-12T10:20:55+09:00
  • 更新日: 2026-05-12T10:20:55+09:00

参考リンク

JVNDB の詳細はこちら

対処方法

該当ソフトウェアの最新版への更新、または開発元が提供する緩和策の適用を推奨します。運用環境に応じて事前検証の上で実施してください。

免責

本記事は公開情報をもとに自動集約された速報です。正確性・完全性は保証できません。必ず一次情報(上記リンク等)をご確認ください。