
CVE-2023-38646是Metabase中的一个远程代码执行漏洞。该漏洞源于Metabase在处理未经身份验证的API端点/api/setup/validate时,对JDBC连接字符串的处理存在安全缺陷。攻击者可以通过构造特定的JDBC连接字符串,利用该端点在服务器上执行任意命令,而无需进行身份验证。
具体而言,攻击者首先通过访问/api/session/properties获取setup-token,然后利用该令牌向/api/setup/validate发送包含恶意JDBC连接字符串的请求。由于Metabase对这些请求缺乏充分的安全校验,导致攻击者能够在服务器权限范围内执行任意代码。
该漏洞的存在主要是由于Metabase在处理数据库连接配置时,未对用户输入的JDBC连接字符串进行严格的安全验证,导致攻击者可以通过精心构造的请求实现远程代码执行。