Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2026-00342
- Vendor: 衛生福利部
- Title: 高雄榮民總醫院 冰箱管理系統 API 未授權存取漏洞
- Introduction: 疫苗冰箱管理系統之 API 端點缺乏任何身份驗證機制,雖然該系統前端已公開顯示疫苗名稱及概略庫存狀態(如「供貨充足」、「暫無庫存」),但後端 API 回傳之資料遠超前端公開範圍,未經授權即可取得。
處理狀態
目前狀態
-
新提交
-
已審核
-
已通報
-
已修補
-
未複測
-
公開
處理歷程
- 2026/03/17 16:19:17 : 新提交 (由 肉 更新此狀態)
- 2026/03/17 16:20:45 : 新提交 (由 肉 更新此狀態)
- 2026/03/18 15:13:33 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/03/26 18:24:47 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/03/26 18:24:47 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/03/26 18:24:48 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/03/31 17:40:13 : 已修補 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/04/08 03:00:07 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2026-00342
- 通報者:kevin2758 (肉)
- 風險:中
- 類型:存取控制缺陷 (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
相關網址
https://vghksvims.vghks.gov.tw/api/vaccine/data
敘述
一、漏洞概述
高雄榮民總醫院部署了一套疫苗冰箱管理系統(Vaccine Inventory Management System),用於管理院內疫苗庫存、效期追蹤及條碼管理,該系統前端為 React SPA 應用程式,後端提供 RESTful API。
經測試發現,該系統之 API 端點 完全未實作任何身份驗證或授權機制,任何人皆可透過網路直接呼叫 API 取得醫院即時疫苗庫存資料。
二、漏洞重現步驟
步驟 1:確認系統存在
存取 https://vghksvims.vghks.gov.tw/,可看到系統前端頁面,標題為「高榮疫苗冰箱」。
步驟 2:分析前端 JavaScript 取得 API 端點
檢視前端 JavaScript 檔案 /assets/index-BSql6lyg.js?v=1.2,可發現以下 API 呼叫:
fetch("https://vghksvims.vghks.gov.tw/api/vaccine/data"
步驟 3:直接呼叫 API 取得資料
使用以下指令即可取得完整疫苗庫存資料,無需任何認證 Token、Cookie 或帳號密碼:
curl -sk -X POST -H "Content-Type: application/json" -d '{}' "https://vghksvims.vghks.gov.tw/api/vaccine/data"
系統回傳 HTTP 200,並包含完整的 JSON 格式疫苗庫存資料。
步驟 4:確認無認證機制
檢視前端 JavaScript,localStorage 僅儲存 UI 偏好設定(fontSize、language),無任何 Token、Session ID 或 Authorization Header 之實作,證實系統完全未實作身份驗證。
三、洩漏資料內容(超出前端公開範圍之欄位)
以上為 即時真實資料,其中精確數量、批次分布及內部識別碼等資訊未於前端公開顯示。
五、影響分析
- 內部管理資訊洩漏:精確庫存數量、批次效期分布及內部識別碼屬於醫院內部管理資訊,不應對外公開,攻擊者可掌握各批次即將過期的疫苗數量,推估醫院採購週期及供應狀態。
- API 無認證設計風險:所有 API 端點完全無認證機制,雖目前僅發現讀取端點,但此架構設計表示若系統未來新增寫入功能,同樣將缺乏保護。
- 內部識別碼洩漏:GUID、條碼等內部識別碼可能被用於對系統其他功能進行進一步探測。
修補建議
1. 為 `/api/vaccine/data` 及所有 API 端點加入身份驗證機制(如 JWT Token 或 Session-based Authentication),未通過驗證之請求應回傳 HTTP 401。
2. 存取控制:實作基於角色的存取控制(RBAC),僅允許授權之醫護人員存取疫苗庫存資料。