
CVE-2023-38646是Metabase中的一个远程代码执行漏洞。该漏洞源于Metabase在处理未经身份验证的API端点/api/setup/validate时,对JDBC连接字符串的处理存在安全缺陷。攻击者可以通过构造特定的JDBC连接字符串,利用该端点在服务器上执行任意命令,而无需进行身份验证。
CVE-2023-38646 is a remote code execution vulnerability in Metabase. The vulnerability stems from a security flaw in Metabase's handling of JDBC connection strings when processing the unauthenticated API endpoint /api/setup/validate. An attacker can construct a specific JDBC connection string to exploit this endpoint and execute arbitrary commands on the server without authentication.
Specifically, an attacker first obtains the setup-token by accessing /api/session/properties, then uses that token to send a request containing a malicious JDBC connection string to /api/setup/validate. Due to Metabase's lack of sufficient security validation for these requests, the attacker can execute arbitrary code within the server's privileges.
This vulnerability exists mainly because Metabase does not strictly validate user-supplied JDBC connection strings when processing database connection configurations, allowing attackers to achieve remote code execution through carefully crafted requests.