Golang XML解析器漏洞可引發SAML 認證繞過

2020-12-23 51cto

Golang XML解析器漏洞可引發SAML認證繞過

12月14日,Mattermost與Golang團隊發布了3個Go 語言XML 解析器安全漏洞。漏洞影響多個基於Go 的SAML 實現,可能引發完整的SAML 認證繞過。

作者:ang010ela來源:嘶吼網|2020-12-22 10:29

12月14日,Mattermost與Golang團隊發布了3個Go 語言XML 解析器安全漏洞。漏洞影響多個基於Go 的SAML 實現,可能引發完整的SAML 認證繞過。

XML 解析器不能保證完整性

下面列出的Golang XML 語言解析器漏洞導致在編碼和解碼XML 輸入時並不會返回可靠的結果,也就是說XML markup(標記)在使用解析器進行編碼器時會返回不連續的、意外的結果:

  • CVE-2020-29509: Go的encoding/xml中XML 屬性不穩定
  • CVE-2020-29510: Go的encoding/xml中XML 指令不穩定
  • CVE-2020-29511: Go的encoding/xml中XML 元素不穩定

這些漏洞是緊密相關的,其中核心的共性問題是:惡意偽造的XML markup可以通過GO的編解碼實現在多輪通信中會發生變異(變化)。

Mattermost 產品安全工程師Nurminen 解釋說,如果應用使用XML 解析器,那麼編碼器和解碼器就不會保留原始markup的語義。

應用在處理XML 和解析不是之前解析和序列化的輸出的markup時,就不能保證解析的輸出和上一輪的輸出是匹配的。換句話說,通過Go 的編碼器和解碼器傳遞XML 並不能保留其語義。

其中一個補丁也證明了由於這些漏洞,在XML 解析期間確實會發生不連續的情況。比如,`

SAML 認證繞過

這看起來是個簡單的漏洞,雖然許多應用都希望能實現語義的完整性,但這些漏洞可能會引發嚴重的後果。

比如,攻擊者可以觸發利用上述XML 解析器的SAML 實現來繞過SAML 認證。Security Assertion Markup Language (SAML)是一種web認證標準,被許多主流網站和服務使用。由於這些漏洞,基於Go 的SAML實現可以被攻擊者利用,通過注入惡意markup到正確籤名的SAML消息中,這樣看起來是經過正確籤名的,但是其語義與原始文檔就完全不同了。

對於SAML SSO系統來說,攻擊者利用有漏洞的XML 解析器可能會引發權限提升或認證繞過。

目前沒有補丁

目前,Go 安全團隊已經發布安全公告,但是目前還沒有補丁來快速修復這些安全漏洞。因為round-trip (多輪)穩定性並部署encoding/xml支持的安全特性,因此單單補丁本身也無法確保XML 解析的可靠性。

但是目前已經有多個基於Go 的SAML 項目發布了修復版本,比如:

  • Dex IDP version 2.27.0
  • github.com/crewjam/saml version 0.4.3
  • github.com/russellhaering/gosaml2 version 0.6.0

更多技術細節參見:https://mattermost.com/blog/coordinated-disclosure-go-xml-vulnerabilities/

本文翻譯自:

https://www.bleepingcomputer.com/news/security/critical-golang-xml-parser-bugs-can-cause-saml-authentication-bypass/

【責任編輯:

趙寧寧

TEL:(010)68476606】

點讚 0

相關焦點

  • 文庫 | XML外部實體注入總結(XXE)
    XML外部實體注入XML External Entity Injection即xml外部實體注入漏洞,簡稱XXE漏洞。XXE是針對解析XML輸入的應用程式的一種攻擊。此處可使用ncat工具進行測試。關於ncat的使用:ncat-網絡工具中的『瑞士軍刀』用ncat在自己的伺服器上開啟監聽:ncat -lvkp 8081(埠可自定義)之後便可使用以下語句嘗試是否能夠建立連接:<?xml version="1.0" encoding="utf-8"?><!
  • DNS解析器驚爆安全漏洞NXNSAttack
    2020年5月19日,特拉維夫大學和以色列跨學科中心的學者們發現,DNS遞歸解析器在實施過程中存在漏洞,可以被用於發起針對任意受害者的破壞性DDoS攻擊。研究人員將利用此漏洞的攻擊稱為NXNSAttack,並在研究論文中進行了詳細說明。
  • xml及json解析
    >xml,可標記語言,用來傳輸數據,至於展示數據需要別的軟體解析例如數據結構的樹形數據結構,如何才能交給PC處理?SAX採用事件處理的方式解析XML文件,利用 SAX 解析 XML 文檔,涉及兩個部分:解析器和事件處理器:•解析器可以使用JAXP的API創建,創建出SAX解析器後,就可以指定解析器去解析某個XML文檔。
  • Ruby XML, XSLT 和 XPath 教程
    XML 指可擴展標記語言(eXtensible Markup Language)。可擴展標記語言,標準通用標記語言的子集,一種用於標記電子文件使其具有結構性的標記語言。它可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言。它非常適合全球資訊網傳輸,提供統一的方法來描述和交換獨立於應用程式或供應商的結構化數據。
  • java_bean XMLDecoder
    弱弱說,有點水,跟到後面懶得跟了23333333二、準備idea 起一個調試Demo,jdk 1.8.20package xmldecoder;import java.beans.XMLDecoder;import java.beans.XMLEncoder;import java.io.IOException
  • 漏洞經驗分享丨Java審計之XXE(下)
    XML解析器將首先處理%file加載文件的參數實體/etc/lsb-release。接下來,XML解析器將在http://attacker.com/evil.dtd向攻擊者的DTD發出請求。最後,一旦URL構造的&send; 實體由解析器處理,解析器向攻擊者的伺服器發出請求。然後,攻擊者可以在其結尾處記錄請求,並從記錄的請求中重建文件的內容。
  • 學習 Python 這麼多年,掉過的那些安全漏洞
    其原理是 XML 可以引用實體,因此當 XML 解析器加載該文件時,它會佔用幾個 G 的內存。不信的話試試看。<?xml version="1.0"?><!DOCTYPE lolz [  <!ENTITY lol "lol">  <!
  • SAX PULL DOCUMENT解析XML總結
    一、SAX解析本文引用地址:http://www.eepw.com.cn/article/201609/303742.htm1、繼承DefaultHandler類,重寫startDocument、startElement、character、endElement、endDocument方法,startDocument在讀取時調用,可寫一些實例化列表等;startElement
  • iOS 10發現重大漏洞 可繞過激活鎖功能
    從描述中可以看出,這一安全防護功能做的確實比較到位,但是,現在有研究人員又發現了一個可被用於繞過蘋果公司「激活鎖」功能的漏洞,這個漏洞能讓黑客進入基於最新版本iOS作業系統運行的iPhone和iPad的主顯示屏。
  • 路由器漏洞挖掘之 DIR-805L 越權文件讀取漏洞分析
    這裡需要滿足 AUTHORIZED_GROUP 的值大於 0 才表示認證成功。那麼這裡全局變量 AUTHORIZED_GROUP 值是從哪裡獲取的呢?這裡我們就需要在 cgibin 這個二進位文件中找到答案。
  • Illusion Gap漏洞:惡意文件可繞過Windows Defender
    根據網絡安全公司CyberArk近期發布的安全通告,在服務信息塊(SMB)協議共享中Windows Defender的文件掃描進程中發現漏洞,允許攻擊者利用受控的惡意SMB服務來引導用戶執行文件,目前該漏洞並命名為「Illusion Gap」。
  • UEFI存零日漏洞可繞過Windows安全功能
    UEFI存零日漏洞可繞過Windows安全功能 2016年07月04日 09:19作者:cnBeta編輯:李佳輝     統一的可擴展固件接口(UEFI
  • Golang蠕蟲將Windows和Linux伺服器變成門羅幣挖礦機
    圖4是蠕蟲暴力破解和嘗試在Tomcat和MySQL服務上進行漏洞利用的結果。漏洞利用以十六進位字符串的形式嵌入在二進位文件中。蠕蟲對不同的作業系統和架構有不同的漏洞利用,設計的系統和架構有UDFLINUX32、UDFLINUX64、UDFLWIN32和UDFWIN64。運行漏洞利用後,payload會用sys_exec 命令來釋放和運行加載器腳本。URLWIN 和URLLINUX 保存釋放器腳本URL。圖7和圖8是每個作業系統對應的payload。
  • Win10漏洞又來了 可繞過Chromium瀏覽器沙盒執行任意代碼
    谷歌安全團隊近年來挖出不少嚴重漏洞,最近他們曝出了Windows 10 May 2019,也就是1903版本中的一個BUG,該BUG能夠破壞所有基於Chromium瀏覽器的沙盒,並且繞過沙盒執行任意代碼,雖然谷歌安全團隊表示想要利用這個BUG發起攻擊比較複雜,但從BUG本身來看,又是一個比較嚴重的系統
  • AppLocker繞過之路
    由於此實用程序是Microsoft籤名的二進位文件,因此可以用來繞過AppLocker限制來運行任何.NET可執行文件。該實用程序也位於Windows文件夾內,該文件夾不會應用AppLocker策略,因為需要執行Windows文件夾的內容才能使系統正常運行。
  • iOS7.1.1現新漏洞:繞過鎖屏訪問通訊錄
    國外用戶稱,新系統中可讓任何人輕鬆繞過鎖屏密碼訪問通訊錄,並可直接撥打電話或發送簡訊。iOS7.1.1現新漏洞(圖片來自新浪)    國外用戶反映,目前iOS 7.1.1可在鎖屏情況下繞過解鎖密碼直接訪問通訊錄,而方法則非常簡單,就是通過語音助手Siri。
  • 常規web滲透測試漏洞合集
    >  Web程序代碼中對於用戶提交的參數未做過濾就直接放到SQL語句中執行,導致參數中的特殊字符打破了SQL語句原有邏輯,黑客可以利用該漏洞執行任意SQL語句,如查詢數據、下載數據、寫入webshell、執行系統命令以及繞過登錄限制等。
  • Web常見漏洞描述及修復建議
    語句中執行,導致參數中的特殊字符破壞了SQL語句原有邏輯,攻擊者可以利用該漏洞執行任意SQL語句,如查詢數據、下載數據、寫入webshell、執行系統命令以及繞過登錄限制等。  修復建議  1、驗證請求的Referer是否來自本網站,但可被繞過。  2、在請求中加入不可偽造的token,並在服務端驗證token是否一致或正確,不正確則丟棄拒絕服務。
  • CVE-2020-14882&14883weblogic未授權命令執行漏洞復現
    概述10 月 21 日,Oracle 官方發布數百個組件的高危漏洞公告。其中組合利用 CVE-2020-14882/CVE-2020-14883 可使未經授權的攻擊者繞過 WebLogic 後臺登錄等限制,最終遠程執行代碼接管 WebLogic 伺服器,利用難度極低,風險極大。
  • XML入門精解之文件格式定義
    可供選擇的子元素用「|」分隔,這樣,我們在XML文件中可以這樣寫:〈配偶〉〈丈夫〉張三〈/丈夫〉〈/配偶〉只從中選擇一個子元素。在我們的XML文件中,還可能包括很多「空元素」,即:元素是單獨存在的,沒有〈/元素〉這樣的結束標記。那麼在DTD中是用EMPTY關鍵字來聲明的。如:〈!ELEMENT 元素名 EMPTY〉。