MENU

CVE-2026-10804 Streamlitの弱いハッシュ脆弱性によるセキュリティリスクとAI Security対策ガイド

  • URLをコピーしました!

AI Security速報をXで配信しています!!

AI/LLM関連の脆弱性、PoC、KEV追加などの更新情報を見逃したくない方は、Xをフォローしてねー!

Xでフォローする

本記事は公開時点の情報をもとにした速報記事です。内容が更新される場合があるため、必要に応じてベンダー公式情報や一次情報もあわせて確認してください。

目次

結論

  • 危険度: Low (CVSS 3.6)
  • 対象: (詳細はベンダーアドバイザリ参照)
  • 修正: ベンダーアドバイザリ参照
  • 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-06-04 | 本記事は公式情報をもとに作成しています。最新情報はベンダー公式アドバイザリを必ずご確認ください。

STEP やること かかる目安
STEP 1 何が起きているか理解する 3分
STEP 2 急ぎ対応すべきか判断する 2分
STEP 3 自分の環境が対象か確認する 5分
STEP 4 修正を適用する 環境による
STEP 5 修正されたことを確認する 3分

STEP 1: 何が起きているか

一言でいうと

CVE-2026-10804はStreamlit 1.53.0以下で発見された脆弱性です。攻撃者はローカルアクセスを得た上で、弱いハッシュ関数を悪用し改ざん可能です。これにより、特にAI/LLMの運用者にとっては重要なセキュリティリスクをもたらします。

やさしく説明すると

この脆弱性は「鍵穴の形が甘くて、合鍵を作られやすい玄関」のようなものです。攻撃者はすぐに外から侵入できるわけではありませんが、内部に少しでもアクセスできるなら、システムの大事な部分の整合性を壊せます。AIシステムの中で使われるデータ処理の重要な段階に影響し、信頼できるはずの情報が偽装される恐れがあります。

技術的な原因

この脆弱性はCWE-327(弱いハッシュ関数の使用)およびCWE-328(不十分なハッシュアルゴリズムの強度)に該当します。具体的には、Streamlitのライブラリ内 lib/streamlit/runtime/caching/hashing.py のPalette Handler部分で弱いハッシュ関数を使っています。攻撃者はローカルアクセス権を使い、この弱いハッシュを悪用してデータの整合性と完全性を損なえます。利用者が多いAI/LLMシステムでは、信頼性の根幹に影響する問題です。

影響を受けると何が困るか

  • AI GatewayやLLM Proxyで使うキャッシュの破損や改ざん可能性。「意図しない結果生成」等の誤動作を招く
  • LLMコンテキスト情報の完全性が失われ、顧客データを含むデータ整合性が保証できなくなる
  • Agenticエージェントの動作に影響して誤った情報でエージェントが行動するリスク
  • AI駆動開発環境(Cursorや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の俯瞰に有用。 開く
Linux Red Hat CVE Red Hat製品(RHEL/CentOS Stream/Rocky/AlmaLinux系)の影響評価とパッチ状況。 開く
Linux Ubuntu Security Ubuntu の影響評価。各Ubuntuバージョン(22.04/24.04等)でのパッチ提供状況が一目で分かる。 開く
Linux Debian Security Tracker Debian の影響評価。stable/testing/sid別のパッチ状況。Debian派生ディスト利用者向け。 開く
Linux SUSE CVE SUSE Linux Enterprise / openSUSE の影響評価とパッチ状況。 開く
悪用 Exploit Database 公開エクスプロイトのアーカイブ。検出ツールやペネトレーションテストでの参照用。 開く
悪用 Packet Storm Security セキュリティアドバイザリ・エクスプロイトの集約サイト。古めの情報も含む。 開く
悪用 GitHub PoC 検索 GitHubコード検索でCVE IDを直接検索。野良PoCの早期発見に。 開く
悪用 X(Twitter)検索 日英 直近の議論やニュースを観測。In-the-wild悪用の早期検知に有用。 開く
スキャナ Snyk Vulnerability DB パッケージ別の脆弱性詳細と修正バージョン。OSS依存ライブラリ追跡に有用。 開く
スキャナ Tenable(Nessus) Nessusスキャナでの検出プラグイン情報。検出ロジックの参考に。 開く
スキャナ Rapid7(Metasploit/Nexpose) Metasploit悪用モジュール、Nexposeでの検出情報。 開く

掲載しているのは無料でアクセスできる情報源のみです。CVEによっては掲載がないサイトもあります(特にJVN iPediaは日本国内で報告された脆弱性のみ掲載)。

STEP 2: 急ぎ対応すべきか判断する

結論: 低

判断根拠

  • CVSS v3.1スコアは3.6で低リスク。攻撃はローカルアクセス(AV:L)が必要で、攻撃複雑度が高く認証なしで遠隔攻撃は不可
  • EPSS(悪用予測スコア)は未公開で、悪用観測はなし
  • 公開されているPoCもなく、すぐに外部攻撃でリスクが高まる状況ではない
  • 脆弱なハッシュの利用が原因で、即座に重大な情報漏洩やコード実行には発展しにくい

誰が動くべきか

  • Streamlitを自社開発やAI Gatewayとして使っているLLMアプリケーション開発・運用者
  • バイブコーダー開発者でStreamlitをAI駆動開発の補助ツールとして使う場合のチェック担当者
  • AgentフレームワークやLLM Proxyを構築しているセキュリティ・SREチーム

STEP 3: 自分の環境が対象か確認する

影響を受けるバージョン

製品 脆弱なバージョン範囲 修正版
Streamlit 〜1.53.0 ベンダーアドバイザリ参照(PR待ち)

バージョン確認コマンド

Python(pip)

pip show streamlit

出力例:

Name: streamlit
Version: 1.53.0
Summary: The fastest way to build custom ML tools
...

判定: Version1.53.0以下なら脆弱。これより新しい場合は安全。

Python(pip list)

pip list | grep streamlit

出力例:

streamlit           1.53.0

判定: 1.53.0以下なら脆弱

設定確認

この脆弱性は設定依存ではなく、バージョンによって脆弱性の有無が決まります。したがって、バージョンが対象範囲であれば脆弱です。

STEP 4: 修正を適用する

パッチ適用

公式の修正プルリクエストが現在検討されています。修正版リリース後は速やかにアップグレードしてください。

Python環境(pip)

pip install --upgrade streamlit

判定: 最新の安全版がインストールされればOK

注意: アップグレード前に現在の環境のバックアップを必ず取得し、ステージング環境で動作検証を行ってください。特にLLM ProxyやAgentic環境で安定性確認が必須です。

パッチ即時適用ができない場合の暫定対応

ベンダー公式による暫定対応は提示されていません。ローカルアクセス制御を強化し、信頼できないユーザーのアクセスを厳しく制限することが重要です。

STEP 5: 修正されたことを確認する

STEP 3で実施したバージョン確認コマンドを再度実行してください。

期待される出力

Python(pip)

pip show streamlit

出力例:

Name: streamlit
Version: 1.54.0
...

判定: バージョンが 1.53.1 以上なら修正済みで安全

追加で確認すべきこと

公開Nucleiテンプレートは存在しませんが、ベンダーからのアップデート情報を注視してください。加えてログ監視で不審なローカル操作がないかを確認してください。

補足: 悪用観測状況

現時点でCISA KEVに未登録、公開PoCやエクスプロイトの報告はありません。悪用は難しいため即時の大規模被害は報告されていません。しかし攻撃コードの公開があり、今後の動向に注意が必要です。

補足: CVSSメトリクス詳細

  • AV (Attack Vector / 攻撃元): Local(ローカルアクセスが必要)
  • AC (Attack Complexity / 攻撃複雑度): High(攻撃に高度な条件が必要)
  • PR (Privileges Required / 必要権限): Low(低い権限でも影響を受ける)
  • UI (User Interaction / ユーザ操作): None(ユーザー操作不要)
  • S (Scope / 影響範囲): Unchanged(範囲は拡大しない)
  • C (Confidentiality Impact / 機密性影響): None(機密情報漏洩なし)
  • I (Integrity Impact / 完全性影響): Low(完全性部分に影響あり)
  • A (Availability Impact / 可用性影響): Low(サービスの可用性に若干の影響)

よくある質問(FAQ)

Q. このCVEに対応するために最低限すべきことは何ですか?

A. STEP 3で自分の環境のStreamlitバージョンを確認し、STEP 4で修正版が出たら速やかにアップグレードしてください。具体的なコマンドは本記事内に記載しています。

Q. パッチが適用できない場合、どうすればよいですか?

A. ローカルアクセスを制限して信頼できるユーザー以外の操作を防止してください。公式の暫定対応はありませんが、アクセス管理が最も現実的な対策です。

Q. 既に攻撃を受けているか確認する方法はありますか?

A. 攻撃コードが公開されているため、ローカルログの不審なキャッシュ改ざんやファイル操作を監視してください。ベンダー公式のIOCは公開されていません。

Q. なぜEPSSスコアが重要なのですか?

A. CVSSは脆弱性の理論上の深刻度を示しますが、EPSSは実際に悪用される確率を示します。悪用の優先度判断には両方を確認するのが実務的です。

Q. このCVEと類似の脆弱性は他にもありますか?

A. CWE-327、CWE-328に分類される同様の弱いハッシュ利用問題は他製品でも見られます。類似問題の報告があれば別途把握して対応してください。

参考文献

本記事に関連するキーワードから、他のAIセキュリティ記事を探せます。

2026-06-11 追記

本記事の公開後、以下の重要な変化が確認されました(公開からの経過: 6日)。

項目 公開時点 2026-06-11時点 変化の意味
結論ボックスの対象範囲が未記入 (詳細はベンダーアドバイザリ参照) cpe:2.3:a:snowflake:streamlit:*:*:*:*:*:*:*:* 公開時は具体的な対象範囲が不明だったが、現在は確定済み(記事生成時の凡ミス補正)
結論ボックスの修正バージョンが未記入 ベンダーアドバイザリ参照 2件のパッチリンクあり(https://github.com/streamlit/streamlit/issues/14622 等) 公開時は修正版情報が結論ボックスにテンプレ文字列のまま残っていた。現在は具体的な修正版が判明(記事生成時の凡ミス補正)

結論ボックスの対象範囲が未記入

記事公開時点では、影響範囲の具体的な情報が「(詳細はベンダーアドバイザリ参照)」となっており詳細が明らかになっていませんでした。しかし、2026-06-11時点では「cpe:2.3:a:snowflake:streamlit:*:*:*:*:*:*:*:*」と、ストリームリット全バージョンが明示的に対象範囲として示されました。これにより、利用者はどの製品・バージョンに影響が出るかを正確に把握できるため、リスク評価と対策の判断が容易になります。自身の運用中の環境でこのCPE表記に該当する製品を利用しているか、速やかに確認しましょう。

結論ボックスの修正バージョンが未記入

公開当初は「修正」欄も「ベンダーアドバイザリ参照」とテンプレートのまま記載されていましたが、現在は「2件のパッチリンクあり(https://github.com/streamlit/streamlit/issues/14622 等)」と具体的な修正パッチへのリンクが判明しています。これにより、適用すべき修正内容が明確になり、速やかなアップデートやパッチ適用が可能となります。運用者は提示されたGitHub IssueやPull Requestの内容を確認し、該当する環境には必ずこれらの修正を反映してください。修正版が既に入手可能な場合は、速やかな対応を推奨します。

2026-06-18 追記

本記事の公開後、以下の重要な変化が確認されました(公開からの経過: 13日)。

項目 公開時点 2026-06-18時点 変化の意味
結論ボックスの対象範囲が未記入 (詳細はベンダーアドバイザリ参照) cpe:2.3:a:snowflake:streamlit:*:*:*:*:*:*:*:* 公開時は具体的な対象範囲が不明だったが、現在は確定済み(記事生成時の凡ミス補正)
結論ボックスの修正バージョンが未記入 ベンダーアドバイザリ参照 2件のパッチリンクあり(https://github.com/streamlit/streamlit/issues/14622 等) 公開時は修正版情報が結論ボックスにテンプレ文字列のまま残っていた。現在は具体的な修正版が判明(記事生成時の凡ミス補正)

結論ボックスの対象範囲が未記入

公開時点では、「対象」欄が「(詳細はベンダーアドバイザリ参照)」となっており、Streamlit製品のどのバージョンが実際に影響を受けるのかが明示されていませんでした。現在は「cpe:2.3:a:snowflake:streamlit:*:*:*:*:*:*:*:*」というCPE(共通製品識別子)が確定し、脆弱性の影響範囲が明らかになりました。これにより、ユーザーは自分の環境が直接的に該当するかをより正確に判断できるようになります。実運用上は、影響評価と対策判断が容易になったため、必ず自身がこのCPEに該当するか、運用中のバージョンやプロダクトを再確認してください。

結論ボックスの修正バージョンが未記入

公開当初は「修正」欄が「ベンダーアドバイザリ参照」という暫定文字列でしたが、本日までに「2件のパッチリンクあり(https://github.com/streamlit/streamlit/issues/14622 等)」と具体的な修正方法と修正版ソースが判明しました。これは、パッチの適用や回避策検討に不可欠な情報となります。運用側では、これらパッチの内容を確認し、必要に応じて最新版へのアップグレード、もしくは該当修正をバックポートするなどの対応計画を立ててください。また、パッチ提供がベンダー公式アドバイザリではない場合もあるため、今後の動向にも引き続き注意することを推奨します。

AI Security速報を継続配信しています!!

AI/LLM関連の脆弱性、PoC、KEV追加、海外アドバイザリなどを X で配信してるので、ぜひフォローをお願いします!

@ai_sec_news_256 をフォロー

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次