
CVE-2023-38646は、Metabaseにおけるリモートコード実行の脆弱性です。この脆弱性は、Metabaseが認証されていないAPIエンドポイント/api/setup/validateを処理する際に、JDBC接続文字列の処理にセキュリティ上の欠陥が存在することに起因します。攻撃者は特定のJDBC接続文字列を構築することで、このエンドポイントを利用して認証を必要とせずにサーバー上で任意のコマンドを実行できます。
CVE-2023-38646は、Metabaseにおけるリモートコード実行(RCE)の脆弱性です。この脆弱性は、Metabaseが認証されていないAPIエンドポイント/api/setup/validateを処理する際に、JDBC接続文字列の処理にセキュリティ上の欠陥があることに起因します。攻撃者は特定のJDBC接続文字列を構築することにより、認証を必要とせずにこのエンドポイントを利用してサーバー上で任意のコマンドを実行できます。
具体的には、攻撃者はまず/api/session/propertiesにアクセスしてsetup-tokenを取得し、その後そのトークンを利用して/api/setup/validateに悪意のあるJDBC接続文字列を含むリクエストを送信します。Metabaseはこれらのリクエストに対して十分なセキュリティ検証を行っていないため、攻撃者はサーバーの権限範囲内で任意のコードを実行できます。
この脆弱性が存在する主な原因は、Metabaseがデータベース接続設定を処理する際に、ユーザーが入力したJDBC接続文字列に対して厳格なセキュリティ検証を行っていないことです。そのため、攻撃者は巧妙に細工したリクエストを通じてリモートコード実行を実現できます。