概要
LibreChat RAG APIにはログインジェクションの脆弱性が存在します。
影響を受けるシステム
- LibreChat RAG API バージョン 0.7.0
詳細情報
LibreChat RAG APIは、FastAPIとLangChainを用いて構築された非同期バックエンドサービスとして設計されており、PostgreSQLのpgvector拡張と連携してドキュメントベースのRAG(検索拡張生成)機能を提供します。しかし、このRAG APIでは、ユーザーからの入力が適切に無害化されずにログファイルに出力されているため、POSTリクエストのフォームデータ内のfile_idパラメーターに改行文字を挿入することで、ログエントリの改ざんが可能です。
想定される影響
認証された攻撃者によってログが操作され、悪意のある活動の隠蔽、フォレンジック調査の妨害、他のユーザーへのなりすましが行われる可能性があります。また、改ざんされたログがウェブベースの管理コンソールや安全でないログ管理ツールを通じて閲覧された場合、クロスサイトスクリプティング(XSS)やリモートコード実行などの二次的な攻撃につながる可能性があります。
対策方法
ワークアラウンドを実施する
以下のワークアラウンドを組み合わせて実施することで、本脆弱性の影響を軽減することが可能です。
- RAGへの取り込み処理において、悪意のあるデータが入力ログに記録されないように無害化する
- 使用していない場合は、PostgreSQLのpgvector拡張機能を無効にする
- RAGの出力を他のツールに渡す前に検証し、間接的なプロンプトインジェクションにつながるおそれのあるデータの転送を防止する
ベンダ情報
参考情報
-
CERT/CC Vulnerability Note VU#624941
LibreChat RAG API contains a log-injection vulnerability
JPCERT/CCからの補足情報
JPCERT/CCによる脆弱性分析結果
謝辞