ブログ/記事一覧/Spring AIにログインなしでデータベース不正操作の脆弱性 CVE-2026-47835
spring-ai-cve-2026-47835-vector-store-query-injection-cover-ja

Spring AIにログインなしでデータベース不正操作の脆弱性 CVE-2026-47835

Javaで生成AIアプリを作るフレームワーク『Spring AI』のベクトルDB連携に、危険度8.6の脆弱性(CVE-2026-47835)。特殊文字を使うとログインなしでElasticsearchなどに不正なクエリを実行され、情報流出の恐れがあります。修正版1.0.9/1.1.8が公開済みで、開発者は即更新を。

ニュース 本日更新
avatar-m-1

堀川 慎

Backend Engineer / AWS / Django / Go

2026.06.167 min0 views
この記事のポイント

Javaで生成AIアプリを作るフレームワーク『Spring AI』のベクトルDB連携に、危険度8.6の脆弱性(CVE-2026-47835)。特殊文字を使うとログインなしでElasticsearchなどに不正なクエリを実行され、情報流出の恐れがあります。修正版1.0.9/1.1.8が公開済みで、開発者は即更新を。

Javaで生成AIアプリを作るための人気フレームワーク「Spring AI」に、危険度8.6の脆弱性が見つかりました。番号はCVE-2026-47835です。特殊な文字を混ぜた入力を使うと、ログインなしで、AIアプリが裏で使っているデータベースに対して不正なクエリ(命令)を実行できてしまう恐れがあります。

開発元のSpringチームは2026年6月12日にセキュリティ情報を公開し、修正版 1.0.91.1.8 を出しました。Spring AIを使っているアプリの開発者は、速やかに更新してください。報告したのはアリババクラウドのNitro Cao氏です。

✓ 現時点で確認できている事実

  • 対象はSpring AIのベクトルデータベース連携のうち、Elasticsearch・OpenSearch・GemFire向けの3部品(Spring公式
  • 特殊文字でデータベースに任意のクエリを実行できる不備(CWE-943、クエリインジェクション)。危険度は10段階で8.6
  • ログイン不要で、ネットワーク経由で悪用できる(CVSSベクターの権限要件はPR:N)
  • 影響: 1.0.x系は1.0.9、1.1.x系は1.1.8で修正済み。現時点で悪用報告・KEV登録なし

Spring AIとベクトルデータベースとは

Spring AIは、Javaの定番フレームワーク「Spring」の一員で、アプリにAI機能(チャットボットや社内文書の検索など)を組み込むための部品をまとめたものです。企業のJava開発で広く使われるSpringの流れに乗り、生成AIアプリの開発で急速に使われ始めています。

その中核になるのがベクトルデータベースです。AIに社内マニュアルや商品情報などを覚えさせて「この資料の中から答えて」と検索させる仕組み(RAGと呼ばれます)では、文章を数値の並びに変換してこの専用データベースにためておき、質問に近い内容を探し出します。Spring AIは、Elasticsearch・OpenSearch・GemFireといった代表的なデータベースと接続する部品を用意しています。

利用者が検索するとき、「この条件に合うものだけ」と絞り込む指定(メタデータフィルター)を付けられます。今回の脆弱性は、この絞り込み条件に特殊な文字を混ぜられたときの処理に潜んでいました。

AIの記憶庫が、誰でも開ける棚に変わる時

危険度8.6という数字より先に、「そのベクトルデータベースに、いったい何をためているのか」を思い出すほうが、この脆弱性の怖さは伝わります。AIに答えさせるために投入するのは、たいてい公開していない社内資料や、顧客とのやり取り、商品の非公開情報といった、検索の都合で一か所に集めた中身だからです。

この絞り込み条件のすき間に手を入れに来るのは、公開されているAIアプリの入力欄やAPIを片端から試して回る攻撃者、企業の内部資料を盗んで売り買いする集団、競合の未発表情報を探る産業スパイ、AIに学習させた個人情報を狙うデータブローカーです。彼らが取りに来るのは抽象的な「データ」ではなく、AIに覚えさせた契約書や設計資料、問い合わせ履歴に含まれる氏名や連絡先、検索のために蓄えた文章そのものです。ログインがいらないため、アプリの検索窓に細工した文字列を入れるだけで成立します。絞り込み条件に不正なクエリを差し込めた瞬間、AIが参照している記憶庫の中身を、本来見えないはずの範囲までそっくり検索・抜き出されてしまいます。

セキュリティの言葉でいうと、これはおなじみのSQLインジェクションと同じ系統の「クエリインジェクション」です。データベースへの命令を組み立てる文章に、攻撃者の文字列が命令として紛れ込んでしまう型で、Elasticsearchなどが備える機能と組み合わされると、想定外のデータの読み出しにつながります。検索窓やAPIという「誰でも触れる入口」がそのまま悪用経路になるため、攻撃者は人手で一件ずつではなく、自動でアプリを巡回して刺さる先を探せます。AIアプリは新しい技術に見えても、その裏にあるのは昔ながらのデータベースであり、入力の扱いを誤れば同じ落とし穴にはまります。

「8.6」という数字が表すのは、あくまで技術的な深刻さの目盛りにすぎません。AIに読ませた資料の山は、人手で全部さばけないからAIにまとめさせたい社内文書、外に出せないからこそ社内のAIに閉じて使っている機密、預かっている顧客の情報であることが多いはずです。本当に失われるのは「データベース1個」ではなく、その中に集めた取引相手の信用や、まだ世に出していない計画、他人から預かった情報のほうです。

CVE-2026-47835:絞り込み条件から不正なクエリが通る

CVE-2026-47835は、Spring公式の説明によると「特殊文字を使って、Elasticsearch・OpenSearch・GemFireのベクトルデータベースに任意のクエリを強制的に実行させられる」というものです。種別は、データベースへの命令を組み立てる際に特殊な文字を無害化しきれない不備(CWE-943)です。

本来、検索の絞り込み条件として渡される文字列は「ただのデータ」として扱われるべきです。ところが、その文字列がデータベースへの命令を組み立てる際にそのまま使われてしまうと、攻撃者が紛れ込ませた命令が実行されます。その結果、本来の絞り込みを越えてデータベースの中身を読み出される、といった被害につながります。

技術的な評価軸(CVSSベクター)は AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L で、スコアは8.6です。要点は「ネット越しに(AV:N)、簡単な条件で(AC:L)、ログインなし(PR:N)・利用者の操作なし(UI:N)で成立し、情報の盗み見の影響が最大(C:H)」という意味です。改ざんやサービス停止の評価は限定的ですが、情報が抜かれる方向の被害が大きく、認証が要らない点が深刻さを底上げしています。

対象バージョンと、いますぐやるべきこと

対象は、Spring AIのベクトルデータベース連携のうちElasticsearch・OpenSearch・GemFire向けの部品です。使っているSpring AIのバージョンを確認してください。

バージョン系統影響を受ける版修正版(即更新)
1.0 系1.0.0 〜 1.0.81.0.9
1.1 系1.1.0 〜 1.1.71.1.8
対象の部品Elasticsearch/
OpenSearch/GemFire
連携を使用
上記の修正版へ
依存を更新

対応は明確で、Spring AIの依存を1.0.9 または 1.1.8 以降へ更新することです。Spring公式によれば、更新すれば追加の対策は不要です。MavenやGradleの依存バージョンを上げ、ビルドし直してデプロイしてください。Elasticsearch・OpenSearch・GemFireの連携を使っていない場合、本CVEの直接の影響は受けませんが、依存はまとめて最新に保っておくのが安全です。

こうした「外部から取り込んだ部品(OSS)に脆弱性が混ざる」問題は、言語を問わず起こります。自分のアプリがどのライブラリのどのバージョンに依存しているかを把握しておくことが、修正の出たときに素早く動く前提になります。npmやPythonの依存であれば、本サイトのOSS脆弱性スキャナーで貼り付けるだけのチェックもできます。

Spring AIのベクトルDB注入は今回が初めてではない

Spring AIでは、この「検索の絞り込み条件から不正な命令が通る」型の脆弱性が、ここ数か月で繰り返し見つかっています。2026年には、別のデータベース連携でのJSONPath注入(CVE-2026-22729)や、絞り込み式の処理からサーバー上でコードまで実行できる例(CVE-2026-22738)などが相次いで公表されました。今回のCVE-2026-47835は、その流れに連なる新たな1件です。フィルター処理という同じ場所が、繰り返し弱点になっています。

AI開発まわりの部品で脆弱性が続くのは、Spring AIに限った話ではありません。本サイトでも、各社のAIをまとめるLiteLLMの認証なし乗っ取り(CVE-2026-42271)、推論サーバーvLLMの繰り返すRCE(CVE-2026-4944)Guardrails AIへの毒入りパッケージ混入(CVE-2026-45758)を取り上げてきました。新しい分野ほど部品の作り込みが追いつかず、基本的な入力処理の穴が残りがちです。

悪用状況と、いま見ておくべきこと

2026年6月15日時点で、CVE-2026-47835が実際の攻撃に使われたという報告はなく、米政府機関が攻撃に悪用されている脆弱性をまとめるCISAのKEVカタログにも登録されていません。攻撃に悪用されている脆弱性の最新状況は、本サイトのCISA KEV日本語ダッシュボードでまとめて確認できます。

ただし、クエリインジェクションは攻撃者にとって馴染み深い手口で、ログイン不要のうえ公開されたAIアプリの入力欄から試せます。修正前の詳細が出回れば、後追いで悪用される可能性は十分にあります。修正版が出ている今のうちに依存を更新しておくのが、最も確実な防御です。

参照元