在現代網路應用中,單一登入(SSO)系統廣泛應用於簡化用戶身份驗證過程,其中SAML(Security Assertion Markup Language)作為常見的協議之一,提供了簡單且安全的身份認證。然而,最近發現的Node.js SAML單一登入(SSO)函式庫Samlify中存在一項高嚴重性資安漏洞CVE-2025-47949,該漏洞可能允許攻擊者繞過身分驗證系統,冒充高權限管理員帳號,從而對企業及服務造成重大風險。
作者深入探討了Samlify中這一漏洞的細節及其嚴重性。研究指出,該漏洞源於Samlify函式庫在XML簽章驗證機制上存在簽章包裝(Signature Wrapping)攻擊的風險。攻擊者能夠利用合法簽署的SAML XML文件,通過插入惡意SAML斷言(Assertion),在不經過加密驗證的情況下,偽造身分信息,進而取得任意用戶的權限,包括系統管理員。這使得攻擊者能夠未經授權地登入目標應用或服務,對企業的資料和操作造成威脅。
根據資安公司Endor Labs的研究,該漏洞已經影響到Samlify 2.10.0版本之前的所有版本。攻擊者只需在取得由身分提供者簽署的XML文件後,就能在其內嵌入偽造的斷言內容,並利用Samlify中存在的解析邏輯漏洞,繞過加密驗證流程,導致伺服器錯誤接受未經簽章驗證的身分資訊。值得注意的是,這一漏洞的利用門檻較低,攻擊者不需要獲得系統權限或與用戶進行互動,熟悉SAML流程即可執行。
本文還進一步指出,Samlify作為Node.js生態系統中的一個重要函式庫,已被廣泛應用於企業、雲端供應商和開發工具中。根據NPM的統計,Samlify每周下載量超過20萬次,並且有超過60個開源專案直接依賴該函式庫,顯示出它在現代開發環境中的普及程度。因此,此漏洞的曝光,對許多使用該函式庫的企業和開發者來說,都構成了極大的安全威脅。
Samlify官方對此漏洞已進行修補,並於2.10.0版本中加強了簽章與斷言對應關係的檢查,防止了簽章包裝攻擊的發生。文章強烈建議所有使用Samlify的用戶儘快升級至2.10.0或更高版本,以保護自身的應用免受這一漏洞的影響。此外,企業應檢查現有的SAML單一登入整合情境,確保所有身分提供者與服務供應商之間的通訊均使用加密連線並遵循最佳資安實務。
總結來說,此篇文章提醒了業界和開發者關於SAML協議及其實現中可能存在的安全風險,並強調了即時升級和加強安全防護措施的重要性,以防止類似的資安漏洞被利用,從而保護企業及其用戶的資料安全。