數百萬設備受 NAME:WRECK 漏洞影響
安全專家披露了九個漏洞,這些漏洞被統一稱為NAME:WRECK,影響了流行的TCP / IP網絡通信堆棧中DNS協議的實現。
安全研究人員披露了九個漏洞,這些漏洞統稱為NAME:WRECK,它們會影響運行在至少1億個設備上的流行TCP / IP網絡通信堆棧中的域名系統協議的實現。
安全公司Forescout和以色列安全研究小組JSOF的研究人員發現了這些漏洞。
漏洞可能允許攻擊者完全控制設備或使設備脫機,下表列出了專家發現的完整漏洞列表:
| CVE ID | Stack | 描述 | 受影響的功能 | 潛在影響 | 嚴重度分數 |
|---|---|---|---|---|---|
| CVE-2020-7461 | FreeBSD | -在dhclient(8)中解析DHCP數據包中的選項119數據時出現邊界錯誤-網絡上的攻擊者可以將精心制作的數據發送到DHCP客戶端 | 訊息壓縮 | RCE | 7.7 |
| CVE-2016-20009 | IPnet | –消息解壓縮功能上基于堆棧的溢出 | 訊息壓縮 | RCE | 9.8 |
| CVE-2020-15795 | Nucleus NET | – DNS域名標簽解析功能無法正確驗證DNS響應中的名稱-解析格式錯誤的響應可能導致寫操作超出分配結構的末尾 | 域名標簽解析 | RCE | 8.1 |
| CVE-2020-27009 | Nucleus NET | – DNS域名記錄解壓縮功能無法正確驗證指針偏移值-解析格式錯誤的響應可能導致寫操作超出分配結構的末尾 | 訊息壓縮 | RCE | 8.1 |
| CVE-2020-27736 | Nucleus NET | – DNS域名標簽解析功能無法正確驗證DNS響應中的名稱-解析格式錯誤的響應可能會導致寫入超出分配結構的末尾 | 域名標簽解析 | 拒絕服務 | 6.5 |
| CVE-2020-27737 | Nucleus NET | – DNS響應解析功能不能正確驗證各種長度和記錄計數-格式錯誤的響應解析可能導致讀取超出分配結構的末尾 | 域名標簽解析 | 拒絕服務 | 6.5 |
| CVE-2020-27738 | Nucleus NET | – DNS域名記錄解壓縮功能無法正確驗證指針偏移值-解析格式錯誤的響應可能會導致超出分配結構末尾的讀取訪問 | 訊息壓縮 | 拒絕服務 | 6.5 |
| CVE-2021-25677 | Nucleus NET | – DNS客戶端無法正確隨機化DNS事務ID(TXID)和UDP端口號 | 交易編號 | DNS緩存中毒/欺騙 | 5.3 |
| * | NetX | – DNS解析器中的兩個功能無法檢查壓縮指針是否等于當前正在解析的相同偏移量,從而可能導致無限循環 | 訊息壓縮 | 拒絕服務 | 6.5 |
“ Forescout Research Labs與JSOF Research合作,披露了NAME:WRECK,這是一組域名系統(DNS)漏洞,有可能導致拒絕服務(DoS)或遠程執行代碼,從而使攻擊者可以使目標設備脫機或控制他們。” 讀取Forescout發布的分析。“這些堆棧的廣泛使用以及易受攻擊的DNS客戶端的外部暴露通常會大大增加攻擊面。”*

三個TCP / IP堆棧易受Ripple 20和Amnesia:33等先前研究項目中發現的與DNS消息壓縮相關的錯誤的侵害,而四個TCP / IP堆棧易受最近的NAME:WRECK研究推動中發現的新錯誤的影響。
研究人員將分析重點放在DNS協議的“消息壓縮”功能及其在TCP / IP堆棧上的實現。
ForeScout研究人員發現,這9個漏洞影響了他們分析的15個TCP/IP協議棧中的7個。

專家指出,DNS響應數據包可以多次包含相同域名或一部分域名,
組播DNS(mDNS),DHCP客戶端和IPv6路由器廣告中采用了相同的編碼,但是專家解釋說,由于代碼復用或對規范的特定理解,幾種協議并未正式支持這種壓縮-
“ DNS壓縮既不是最有效的壓縮方法,也不是最容易實現的。如表1所示的歷史漏洞所證明的那樣,這種壓縮機制在各種產品(例如DNS服務器,企業設備(例如,Cisco IP電話),以及最近的產品)上實施20年來一直存在問題。 TCP / IP堆棧有Treck,uIP和PicoTCP。” 閱讀研究人員發表的報告。
研究人員進行的研究提供了有關漏洞利用的技術細節。
研究人員還描述了DNS消息解析器中的一些重復出現的實現問題,專家將其稱為反模式(AP),這可能會導致NAME:WRECK漏洞。
本文中描述的反模式是:
- –缺乏TXID驗證,隨機TXID和源UDP端口不足
- –缺乏域名字符驗證
- –缺少標簽和名稱長度驗證
- –缺少NULL終止驗證
- –缺少記錄計數字段驗證
- –缺乏域名壓縮指針和偏移量驗證
NAME:WRECK漏洞已在FreeBSD,Nucleus NET和NetX中得到解決。
Forescout研究人員發布了兩個開源工具,這些工具可以確定目標網絡上運行特定嵌入式TCP / IP堆棧的設備(Project Memoria Detector)是否存在,并可以檢測類似NAME:WRECK的漏洞。
“ NAME:WRECK是這樣一種情況,RFC特定部分的錯誤實現可能會造成災難性的后果,這些后果會散布在TCP / IP堆棧的不同部分,然后是使用該堆棧的不同產品。” 總結報告。“值得注意的是,當堆棧具有易受攻擊的DNS客戶端時,通常會同時存在多個漏洞,但是消息壓縮反模式非常突出,因為它通常會導致潛在的RCE,因為它通常與指針操作和內存操作相關聯。 ”