【高】CVE-2026-29090 rucioのSQLインジェクション脆弱性解説とAI Security視点のLLM運用者向け緊急対策ガイド

結論
- 危険度: High (CVSS 8.8)
- 対象: rucio >= 1.30.0, < 35.8.5 / rucio >= 36.0.0, < 38.5.5 / rucio >= 39.0.0, < 39.4.2
- 修正: 35.8.5 / 38.5.5 / 39.4.2
- KEV: No (NVD Critical由来。CISA KEVには未登録)
タイトルの緊急度プレフィックス(【至急】【最重大】等)の意味
| 表記 | 条件 | 意味 | 対応目安 |
|---|---|---|---|
| 【至急/ランサム悪用】 | CISA KEV登録 + ランサムウェア悪用観測 | ランサムグループが現在進行形で悪用 | 本日中に対応開始 |
| 【至急/重大】 | CISA KEV登録 + CVSS 9.0以上 | 実世界で攻撃観測あり + スコア極めて高い | 本日中に対応開始 |
| 【重大/KEV登録】 | CISA KEV登録(CVSS低またはNVD未反映) | 実世界で攻撃観測あり | 数日以内 |
| 【最重大】 | CVSS 9.5以上(KEV未登録) | 理論上の危険度ほぼ満点、攻撃観測はまだない | 1週間以内に対応計画 |
| 【重大】 | CVSS 9.0〜9.4(KEV未登録) | Critical帯の理論的高リスク | 1〜2週間以内 |
| 【高】 | CVSS 7.0〜8.9(KEV未登録) | High帯のリスク | 計画的に対応 |
| (プレフィックスなし) | CVSS 7.0未満 | Medium以下のリスク | 通常メンテで対応 |
「至急」と「最重大」の違い: 「至急」は CISA(米国政府機関)が 実際に悪用を観測した CVEに付与されます。「最重大」は CVSS スコア上は最高峰だが、まだ悪用観測がない ものです。同じCVSS 9.8でもKEV登録の有無で扱いが変わります。
最終更新: 2026-05-12 | 本記事は公式情報をもとに作成しています。最新情報はベンダー公式アドバイザリを必ずご確認ください。
| STEP | やること | かかる目安 |
|---|---|---|
| STEP 1 | 何が起きているか理解する | 5分 |
| STEP 2 | 急ぎ対応すべきか判断する | 3分 |
| STEP 3 | 自分の環境が対象か確認する | 5分~環境による |
| STEP 4 | 修正を適用する | 環境依存 |
| STEP 5 | 修正されたことを確認する | 3分 |
STEP 1: 何が起きているか
一言でいうと
CVE-2026-29090はrucioのSQLインジェクション脆弱性です。攻撃者は認証済みであれば、rucioのPostgreSQLデータベースに任意のSQLを実行できます。これはLLMゲートウェイ運用者やAIセキュリティに関わる開発者にとって最優先で対応すべき深刻な問題です。
やさしく説明すると
例えば、あるソフトの「検索窓」に悪意のある文字列を入れるだけで、データベースの中身が丸見えになったり書き換えられたりすることがあります。この脆弱性は、rucioの検索APIが安全に入力値を処理できず、結果的に悪い人が自由にデータを盗んだり壊したりできる状態です。つまり「玄関の鍵が壊れている」ようなもので、認証はあるものの内部の持ち主が意図しないことがデータベースで起こってしまいます。
技術的な原因
この脆弱性はCWE-89「SQLインジェクション」に分類されます。rucioのFilterEngine.create_postgres_query()関数が、Pythonのstr.format()によって攻撃者制御の入力値を直接SQL文字列に埋め込みます。これをpsycopg3のsql.SQL()で処理すると、生のSQLコードとして実行されてしまいます。本来、SQLインジェクション防止ではパラメータ化クエリを使い、入力を無害化(エスケープ)すべきですが、ここでは無防備に文字列連結が行われていました。
影響を受けると何が困るか
- APIキーや認証トークンの漏洩による即時のセッション乗っ取り
- LLMコンテキストや顧客データを含むメタ情報の不正取得
- プロンプトインジェクション経由でのAIエージェント制御の乗っ取り
- モデルデータや分散検索(RAG)情報の改ざん
- DB書き換えや選択的削除によるシステム信頼性の破壊
- PostgreSQLの機能を悪用したリモートコード実行
- インフラ全体への横展開による広範な侵害拡大
- AI駆動開発ツール(Cursor、Cline、Copilotなど)での悪用リスク増加
もっと詳しく調べたい人へ — 公式情報源マップ
本記事は以下の公式・準公式の情報源から内容を集約しています。一次情報を確認したい場合や英語で詳細を読みたい場合は、各リンクから直接アクセスできます。
| カテゴリ | 情報源 | 言語 | 何が分かるか | リンク |
|---|---|---|---|---|
| 総合 | NVD(米国 NIST) | 英 | 米国政府の脆弱性データベース。CVSSスコア、影響を受けるCPE、参考リンクの総合ハブ。最も網羅的。 | 開く |
| 総合 | MITRE CVE | 英 | CVE採番機関の公式記録。CVE記述の「正本」。NVDより記載が簡潔だが一次情報。 | 開く |
| 総合 | JVN iPedia(JPCERT/CC・IPA) | 日 | 日本のCSIRTが運用する脆弱性対策情報データベース。日本語で概要・対策が読める。掲載がない場合あり。 | 開く |
| 総合 | CISA KEV(悪用観測カタログ) | 英 | 米国CISAが実際に悪用を確認している脆弱性のカタログ。掲載されていれば最優先で対応。 | 開く |
| 総合 | GitHub Advisory Database | 英 | OSSパッケージ(npm/pypi/maven/composer/go等)別の脆弱性アドバイザリ。修正PRへのリンクが豊富。 | 開く |
| 総合 | OpenCVE | 英 | 複数CVEデータベースの集約検索サービス。タイムラインや関連CVEの俯瞰に有用。 | 開く |
| 悪用 | GitHub PoC 検索 | 英 | GitHubコード検索でCVE IDを直接検索。野良PoCの早期発見に。 | 開く |
掲載しているのは無料でアクセスできる情報源のみです。CVEによっては掲載がないサイトもあります(特にJVN iPediaは日本国内で報告された脆弱性のみ掲載)。
STEP 2: 急ぎ対応すべきか判断する
結論: 高
判断根拠
- CVSSスコアは8.8(High)で、ネットワーク経由・認証ユーザーから低権限での攻撃が可能。実務的にはAIシステムの根幹を揺るがす深刻度。
- EPSSスコアは0.05%(低いが全く無視できない)。つまり直近30日で実際の悪用は低いが、警戒が必要。
- ランサムウェア悪用は確認されていないが、リモートコード実行の可能性があるため警戒すべき。
- 公開PoCやExploitは今のところ無いが、攻撃難易度が低いため将来的なリスクは高い。
- 認証済みユーザーなら誰でも悪用でき、操作不要・設定依存で攻撃可能。
誰が動くべきか
- rucioをLLM GatewayやAgenticフレームワークで使っている運用チーム
- MLインフラチームやRAGパイプライン保守者
- AIコーディングツール(Cursor、Cline等)やバイブコーダーとしてrucioを連携利用している開発者
STEP 3: 自分の環境が対象か確認する
影響を受けるバージョン
| 製品 | 脆弱なバージョン範囲 | 修正版 |
|---|---|---|
| rucio | ≥ 1.30.0, < 35.8.5 | 35.8.5 |
| rucio | ≥ 36.0.0, < 38.5.5 | 38.5.5 |
| rucio | ≥ 39.0.0, < 39.4.2 | 39.4.2 |
| rucio | ≥ 40.0.0, < 40.1.1 | 40.1.1 |
バージョン確認コマンド
Python (pip)
pip show rucio
出力例:
Name: rucio
Version: 39.3.0
Summary: Data management software
...
判定: Versionが
| 1.30.0以上かつ 35.8.5未満 または 36.0.0以上かつ38.5.5未満 または 39.0.0以上かつ39.4.2未満 または 40.0.0以上かつ40.1.1未満 |
なら脆弱
Python (poetry)
poetry show rucio
出力例:
rucio 39.3.0 Data management software
判定: バージョン値により上記と同様判定
設定確認
この脆弱性はrucioで明示的に postgres_meta メタデータプラグインを使っている場合のみ発生します。設定ファイルや環境変数でpostgres_meta使用を確認してください。設定依存のため、使っていなければ影響を受けません。
ただし、対象バージョンでありかつpostgres_metaを有効にしている環境は確実に脆弱です。
STEP 4: 修正を適用する
パッチ適用
Python (pip)でのアップグレード例
pip install --upgrade rucio==39.4.2
判定: バージョンが 39.4.2 以上なら脆弱性は解消されます
Python (poetry)でのアップグレード例
poetry add rucio@39.4.2
判定: 同上
注意: アップグレード前に環境のバックアップを必ず取り、ステージング環境で動作検証を行いましょう。データベースとの互換性問題も念入りに確認してください。
パッチ即時適用ができない場合の暫定対応
ベンダーからは暫定対応の具体的な案は示されていません。postgres_metaプラグインの無効化や、検索APIの利用を必要最小限に制限するネットワークACL設計を検討してください。
STEP 5: 修正されたことを確認する
STEP 3のバージョン確認コマンドを再度実行してください。
期待される出力
Python (pip)
pip show rucio
出力例:
Version: 39.4.2
...
判定: バージョンが 39.4.2 以上ならOK
追加で確認すべきこと
- 設定で
postgres_meta使用設定を改めて確認する - アクセスログに不審な検索リクエストやエラーが記録されていないか調査する
- 可能ならばベンダー提供ツールや検査手段を使って再検出を行う
補足: 悪用観測状況
現時点でCISA KEVには登録されていません。悪用を示す公開PoCやExploitコードも確認されていません。ランサムウェアグループによる悪用の報告もありません。
しかしCVSSスコアが高く、攻撃の難易度が低いため、将来的な悪用発生の可能性は無視できません。
補足: CVSSメトリクス詳細
- AV (Attack Vector): NETWORK(ネットワーク経由で攻撃可能)
- AC (Attack Complexity): LOW(攻撃は容易)
- PR (Privileges Required): LOW(軽微な権限で可能)
- UI (User Interaction): NONE(操作不要)
- S (Scope): UNCHANGED(影響範囲は限定的)
- C (Confidentiality Impact): HIGH(データ漏洩が重大)
- I (Integrity Impact): HIGH(データ改ざんが重大)
- A (Availability Impact): HIGH(サービス停止リスクあり)
よくある質問(FAQ)
Q. このCVEに対応するために最低限すべきことは何ですか?
A. STEP 3の対象バージョンかどうかを確認し、STEP 4の推奨修正版にアップグレードしてください。詳細なコマンドは記事内に記載しています。
Q. パッチが適用できない場合、どうすればよいですか?
A. 公式の暫定対応は提示されていません。可能ならpostgres_metaプラグインを無効化するか、アクセス制御を強化して検索APIの利用を制限してください。
Q. 既に攻撃を受けているか確認する方法はありますか?
A. ベンダー提供情報には特定のIOCはありません。アクセスログで不審なSQL検索リクエストの存在や、想定外のデータベース変更を監視してください。
Q. なぜEPSSスコアが重要なのですか?
A. CVSSは脆弱性の理論的な深刻度を示し、EPSSは「実際に悪用される可能性」を示します。両方を見ることで対応優先度を正確に判断できます。
Q. このCVEと類似の脆弱性は他にもありますか?
A. CWE-89「SQLインジェクション」は他の多くのAI/LLM関連サービスでも起こり得ます。特にデータベースアクセス部分の文字列埋め込み処理は注意が必要です。
参考文献
関連トピック・タグから探す
本記事に関連するキーワードから、他のAIセキュリティ記事を探せます。
