Zafran Labsは、会話型AIアプリを構築するための人気オープンソースフレームワーク「Chainlit」における2つの重大な脆弱性を発見しました。
Chainlitは業界を問わず企業のインターネット公開AIシステムを支えており、PyPIの月間ダウンロード数は平均70万件に達します。
これらの欠陥であるCVE-2026-22218(任意ファイル読み取り)とCVE-2026-22219(SSRF)により、攻撃者はユーザー操作なしにAPIキー、機密ファイル、クラウド認証情報を窃取できます。
Zafranは大手企業の実サーバーでの悪用を確認し、AIインフラのリスクを調査するためにProject DarkSideを立ち上げました。
これらの問題はChainlitの中核に影響します。ユーザーチャットのためのUI/フロントエンド層と、LangChain、OpenAI、AWS Bedrockなどのツールを用いたAIオーケストレーションのバックエンドです。

攻撃者は認証後、/project/element のPUTエンドポイントを悪用します。ChainlitのElementクラスはカスタム要素の扱いを誤り、サーバーファイルをコピーしたり、リモートURLを無条件に取得したりします。
技術的な内訳と悪用
CVE-2026-22218:任意ファイル読み取り
攻撃者は、制御可能な path プロパティを持つカスタム要素を送信します。Chainlitの persist_file は、サーバー上で読み取り可能な任意のファイルを攻撃者のセッションディレクトリにコピーし、API経由で露出させます。
標的には、AWS_SECRET_KEY、CHAINLIT_AUTH_SECRET(トークン偽造用)などの環境変数を含む /proc/self/environ、および(LangChain構成でテナント間のプロンプトが漏えいする).chainlit/.langchain.db などが含まれます。
app.py のようなソースコードからはカスタムフックが判明し、SQLite DBからはユーザーチャットがダンプされます。
CVE-2026-22219:SSRF
SQLAlchemyのデータレイヤーでは、カスタム要素に url を設定します。Chainlitは aiohttp でそれを取得し、生成された読み取りURLを介して持ち出せるようコンテンツを保存します。ファイル読み取りと組み合わせることで、漏えいした環境変数や /etc/hosts を手掛かりに内部サービスを探索できます。
IMDSv1が有効なAWS EC2では、http://169.254.169.254/latest/meta-data/iam/security-credentials/ にアクセスしてロール認証情報を取得し、バケット、シークレット、LLMへ横展開できます。
この連鎖は、偽造トークンによる認証バイパスから始まり、クラウド掌握へとエスカレートします。セッションアクセス以外の権限は不要です。
マルチテナント構成ではリスクが増幅し、全ユーザーのLLMプロンプト/応答が漏えいします。
| CVE | CVSS(推定) | 種類 | 影響を受けるエンドポイント | 主な標的 |
|---|---|---|---|---|
| CVE-2026-22218 | 9.1(重大) | 任意ファイル読み取り | PUT /project/element(pathプロパティ) | /proc/self/environ, .langchain.db, app.py |
| CVE-2026-22219 | 8.8(高) | SSRF | PUT /project/element(urlプロパティ) | 内部API, 169.254.169.254(IMDSv1) |
IoC
- 露出したChainlitサーバー:
/chainlitパス、または8000/3000番ポートのWebSocket/wsをスキャン。 - 脆弱なバージョン:<2.9.4(ヘッダー/ユーザーエージェントで「Chainlit」を確認)。
- トラフィック:PUT
/project/elementに{"type":"custom","path":"..."}または{"type":"custom","url":"..."}。 - ファイル:
.chainlit/.langchain.db、CHAINLIT_AUTH_SECRETを含む環境変数の漏えい。 - ZafranのSnortシグネチャ:
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"Chainleak - PUT /project/element"; content:"PUT"; http_method; content:"/project/element"; http_uri; depth:16;)

緩和策
直ちにChainlit 2.9.4へアップグレードしてください。ZafranのComponentsモジュールまたはWAFルールを使用してください。IMDSv1をブロックし、最小権限のIAMを徹底してください。Shodan/Censysで露出インスタンスをスキャンしてください。
Project DarkSideは、UI、エージェント、オーケストレーション、LLMなどAIスタックのリスクを明らかにし、古典的な欠陥が連鎖してクラウド侵害へ至ることを示しています。AI導入が急増する中、「ダークサイド」攻撃を防ぐためにChainlitのようなフレームワークを安全に運用してください。
翻訳元: https://gbhackers.com/chainlit-ai-flaws-hijack-clouds/