Weblateはウェブベースのローカリゼーションツールです。Weblateのコンポーネント作成機能により、認可されたユーザーはバージョン管理システムとソースコードリポジトリのURLを指定して新しい翻訳コンポーネントを追加できます。しかし、バージョン5.15以前では、リポジトリURLフィールドに対する検証やサニタイズが行われておらず、攻撃者は任意のプロトコル、ホスト名、IPアドレス(localhostや内部ネットワークのアドレス、ローカルのファイル名を含む)を指定できます。Mercurialバージョン管理システムが選択された場合、Weblateは指定されたURLに対するサーバー側のHTTPレスポンス全体を曝露します。このことにより、内部サービスを調査してその内容を返すサーバーサイドリクエストフォージェリ(SSRF)の脆弱性が実質的に発生します。内部のHTTPエンドポイントへのアクセスに加えて、この動作はfile://リクエストの試行によるローカルファイルの列挙も可能にします。ファイル内容は必ずしも返されない場合がありますが、アプリケーションのエラーメッセージでファイルの存在有無が明確に区別されているため、サーバーのファイルシステム構成に関する情報が暴露されます。クラウド環境においては、この挙動は特に危険であり、クラウドメタデータサービスなど内部限定のエンドポイントにアクセスできる可能性があり、認証情報の漏洩や環境全体の侵害につながる恐れがあります。この問題はWeblate 5.15のリリースで対処されています。回避策としては、`VCS_BACKENDS`からMercurialを削除することが推奨されます。Gitバックエンドは影響を受けておらず、ファイルプロトコルをブロックし、エラーメッセージでHTTPレスポンス内容を曝露しないように既に設定されています。
|