Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2026-00918
- Vendor: 衛生福利部與社會家庭署
- Title: 衛福部與社家署 自然人憑證登入驗證漏洞
- Introduction: 自然人憑證登入時,系統未將簽章後的資料送到後端做驗證。
處理狀態
目前狀態
-
新提交
-
已審核
-
已通報
-
未回報修補狀況
-
未複測
-
公開
處理歷程
- 2026/07/13 18:01:58 : 新提交 (由 SJ 更新此狀態)
- 2026/07/20 11:32:55 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/07/23 16:44:57 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/07/23 16:44:57 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/07/23 16:44:57 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/09/12 03:00:22 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2026-00918
- 通報者:sjliou (SJ)
- 風險:高
- 類型:存取控制缺陷 (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
相關網址
swis2.sfaa.gov.tw
ictp.sfaa.gov.tw
twbaby.sfaa.gov.tw/home/apply-data
atonline.sfaa.gov.tw/apply_loginMethod_2.jsp
dpws.sfaa.gov.tw/online_apply_login.jsp
swis.mohw.gov.tw/socs/new_login_cert.jsp
cmp.mohw.gov.tw/login_cert.jsp
nap2.mohw.gov.tw/login_cert.jsp
cfeda.mohw.gov.tw/login_cert_new.jsp
lcas.mohw.gov.tw/login_cert.jsp
敘述
上述系統皆以「自然人憑證(HiCOS/GCA 元件)」作為登入身分驗證。正確的憑證登入安全流程應為:
伺服器產生一次性隨機挑戰值,作為待簽資料(tbs)下發前端;
前端呼叫本機憑證元件,以使用者私鑰對該 tbs 簽章;
前端將簽章值(signature)+憑證(certb64)回傳後端;
後端以憑證公鑰驗證簽章、確認所簽 tbs 為本次下發者(防重放)、並查驗憑證鏈與撤銷狀態(CRL/OCSP),確認「使用者確實持有該憑證私鑰」後才放行。
經檢視 11 個系統之前端程式碼,第 2 步之後的安全控制全部缺失或失效:
前端雖取得簽章(data.signature),但該值取出後從未使用,亦未放入送往後端的任何欄位。
後端實際只收到由憑證公開內容解析出的識別資料(憑證序號/身分證字號/身分證末四碼)。
上述識別資料並非秘密:可由持卡人公開憑證資訊取得,或側錄一次正常登入封包取得。
待簽資料 tbs 多為寫死常數("1111"、"TBS"、"GCA")而非伺服器下發之一次性挑戰值,無防重放能力。
身分證末四碼與憑證之比對僅在前端 JavaScript 執行,可被繞過。
修補建議
下發一次性挑戰值:登入時由伺服器產生隨機 tbs(綁定 session、設定有效期),取代寫死的固定字串。
回傳並驗證簽章:前端須將 signature 與 certb64 一併送回;後端以憑證公鑰驗證簽章確由對應私鑰對該 tbs 所簽。
後端驗證待簽資料:確認所簽 tbs 與 session 下發者相符、未過期、未被重複使用(防重放)。
比對移至後端:身分證字號與憑證內容之比對必須於伺服器端執行,不可僅靠前端 JavaScript。
憑證鏈與撤銷驗證:後端驗證憑證簽發鏈(MOICA/GCA/GRCA 體系)並查驗 CRL/OCSP 撤銷狀態。
全面盤點同源樣板:本問題源自共用前端樣板,建議盤點所有採用同一套 cross-browser.js / CitizenDigitalCert.js / natural-card-handler.js 之系統一併修補。