Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2026-00390
- Vendor: 國立臺灣大學
- Title: 國立臺灣大學 JupyterLab 未實施存取控制致 RCE 暨主機已遭挖礦程式入侵
- Introduction: 校園 GPU 運算伺服器對外暴露未設定任何認證的 JupyterLab 服務,且主機已遭第三方植入加密貨幣挖礦程式並持續運行。
處理狀態
目前狀態
-
新提交
-
已審核
-
已通報
-
已修補
-
已複測
-
公開
處理歷程
- 2026/03/22 23:01:25 : 新提交 (由 DL56 更新此狀態)
- 2026/03/23 20:55:41 : 新提交 (由 DL56 更新此狀態)
- 2026/03/25 14:36:36 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/04/09 16:39:20 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/04/09 16:39:20 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/04/09 16:39:21 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/04/20 14:49:32 : 複測申請中 (由 組織帳號 更新此狀態)
- 2026/04/20 19:31:31 : 確認已修補 (由 DL56 更新此狀態)
- 2026/04/24 03:00:07 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2026-00390
- 通報者:dinlon5566 (DL56)
- 風險:嚴重
- 類型:存取控制缺陷 (Broken Access Control)
參考資料
OWASP Top 10 - 2017 A5 - Broken Access Control
https://www.owasp.org/index.php/Top_10-2017_A5-Broken_Access_Control
CWE-284: Improper Access Control
https://cwe.mitre.org/data/definitions/284.html
相關網址
敘述
漏洞說明
JupyterLab 2.17.0 服務未實施存取控制,未設定任何存取認證(token、password 均為空)。該服務以 root 身份運行於一台搭載 NVIDIA GeForce RTX 5090 的 GPU 運算主機上,並以 NVIDIA NGC Docker Container 形式部署。
由於 Jupyter REST API 同樣無需認證,攻擊者可透過 API 直接:
- 執行任意 Python / Shell 程式碼
- 讀寫伺服器完整檔案系統(包含
/etc、/root、/proc等敏感目錄) - 建立互動式 Terminal(root shell)
- 存取並竊取環境變數、SSH 金鑰等憑證
重現步驟
步驟 1: 直接以瀏覽器開啟以下網址,無需輸入任何帳號密碼即可進入完整 JupyterLab 介面:
http://140.112.91.89:8888/lab
步驟 2: 透過 Jupyter REST API 列舉根目錄檔案系統,確認以 root 身份運行且完整檔案系統可讀寫:
步驟 3: 讀取 /etc/passwd,確認系統使用者清單完全可存取:
步驟 4: 查詢 Terminal API,確認有 2 個 active root shell 正在運行:
步驟 5: 讀取 /proc/1/environ,取得容器完整環境變數,確認 GPU 型號、CUDA 版本、PyTorch 版本等敏感資訊:
主機已遭入侵:加密貨幣挖礦程式
本次調查中在 /workspace/logs/ 目錄下發現挖礦軟體運行紀錄,確認主機已被第三方植入 nanominer 並持續挖掘 Ravencoin(RVN)加密貨幣。
挖礦紀錄位置:
/workspace/logs/log_2026-03-19_04-53-52.log
/workspace/logs/log_2026-03-21_17-33-50.log
關鍵紀錄摘錄:
2026-Mar-21 17:33:50: nanominer Version 3.10.0-linux
2026-Mar-21 17:33:50: NVIDIA driver version: 580.82.07 (13.0)
2026-Mar-21 17:33:50: Single device detected
2026-Mar-21 17:33:50: GPU 0 PCI 41:00.0, Platform: CUDA
2026-Mar-21 17:33:50: Name: NVIDIA GeForce RTX 5090, 32109 MB available
2026-Mar-21 17:33:50: -------------------Kawpow:------------------
2026-Mar-21 17:33:50: Currency: Raven
2026-Mar-21 17:33:50: Wallet: 44N5jui2nbtQaxWjs9hoJBX5ELrCk5ftja7Zu3QCGTA1FftJhDKrEDL92Rw12j8FALHKnJEUb6KZ45SAncJ6iqKN6nShj2S
2026-Mar-21 17:33:50: Rig name: Sleepy_3577aa97
2026-Mar-21 17:33:50: Added pool: 45.61.137.195:444
2026-Mar-21 17:33:53: Connected to pool: 45.61.137.195:444
2026-Mar-21 17:33:54: New job from 45.61.137.195:444 | share difficulty = 96 GH, epoch 571 (5591 MB)
圖六:/workspace/logs/ 挖礦程式運行紀錄,確認 RTX 5090 正被用於挖掘 Ravencoin,礦池為 45.61.137[.]195:444
入侵指標(IoC):
| 項目 | 數值 |
|---|---|
| 挖礦軟體 | nanominer v3.10.0-linux |
| 演算法 | KawPow |
| 幣別 | Ravencoin (RVN) |
| 攻擊者錢包 | 44N5jui2nbtQaxWjs9hoJBX5ELrCk5ftja7Zu3QCGTA1FftJhDKrEDL92Rw12j8FALHKnJEUb6KZ45SAncJ6iqKN6nShj2S |
| 礦池 IP | 45.61.137[.]195:444 |
| Rig 名稱 | Sleepy_3577aa97 |
| 最初植入時間 | 2026-03-18(依容器建立時間推算) |
| 最後確認運行 | 2026-03-21 17:33:54 UTC+8 |
影響範圍
- 遠端程式碼執行(RCE):任何人可透過 Jupyter Notebook 或 Terminal 執行任意系統指令,等同取得 root shell
- 資料外洩:完整檔案系統可讀,包括設定檔、SSH 金鑰、程式碼、研究資料
- 資源濫用:RTX 5090 GPU 已被挖礦程式佔用,影響正常研究使用
- 內網橫向移動:可作為跳板進一步滲透校內網路(140.112.x.x 段)
- 持續性入侵:攻擊者已在系統中建立長期駐留,挖礦程式持續運行
修補建議
## 修補建議
1. **立即下線隔離**該容器,進行完整鑑識調查,確認攻擊者是否已有更深入的後門
2. **強制設定 JupyterLab 認證**:啟動時加入 `--NotebookApp.token=<strong_token>` 或設定密碼,或改用 JupyterHub 集中管理認證
3. **限制網路存取**:JupyterLab 不應對外網開放,應透過 VPN 或 SSH Tunnel 才能存取,或使用防火牆限制僅允許特定 IP
4. **以非 root 使用者運行**:容器內應使用低權限使用者執行 Jupyter,而非 root
5. **清除挖礦程式**並更改所有可能已外洩的憑證(SSH keys、API tokens 等)
6. **更新容器映像**並重新部署,確保無惡意程式殘留
7. **建立定期掃描機制**,偵測對外暴露的未認證服務