【漏洞通告】Dnsmasq多個安全漏洞
發布時間 2021-01-200x00 漏洞概述
Dnsmasq是廣泛使用的開源軟件,可提供DNS轉發、緩存以及DHCP服務器功能,它在物聯網(IoT)和其它嵌入式設備中很常見。
2021年01月19日,以色列安全咨詢公司JSOF披露了7個Dnsmasq漏洞(統稱為DNSpooq),受 DNSpooq 影響的設備不僅會遭遇DNS 緩存中毒,還可被用于遠程代碼執行、以及拒絕服務攻擊。
0x01 漏洞詳情
由于DNSSEC處理代碼的邊界檢查錯誤,Dnsmasq中存在4個緩沖區溢出漏洞。當Dnsmasq被配置為使用DNSSEC時,遠程攻擊者可以使用惡意設計的DNS響應來觸發DNSpooq中的緩沖區溢出漏洞,最終導致拒絕服務、信息泄露及遠程代碼執行。
Dnsmasq緩沖區溢出漏洞(CVE-2020-25681)
使用DNSSEC時,2.83之前的Dnsmasq版本在sort_rrset()中容易發生基于堆的緩沖區溢出,其CVSS評分8.1。這可以使遠程攻擊者將任意數據寫入目標設備的內存中,可能導致目標設備上的內存損壞和其它意外行為。
Dnsmasq緩沖區溢出漏洞(CVE-2020-25682)
啟用DNSSEC時,由于缺少長度檢查,2.83之前的Dnsmasq版本在extract_name()函數中容易發生緩沖區溢出,其CVSS評分8.1。這可能導致遠程攻擊者在目標設備上造成內存損壞。
Dnsmasq緩沖區溢出漏洞(CVE-2020-25683)
啟用DNSSEC時,由于rfc1035.c:extract_name()中缺少長度檢查,2.83之前的Dnsmasq版本容易出現基于堆的緩沖區溢出,其CVSS評分5.9。遠程攻擊者可以通過利用此漏洞在堆分配的內存中引起溢出,并且可以通過濫用長度檢查來導致 dnsmasq 崩潰,最終造成拒絕服務。
Dnsmasq緩沖區溢出漏洞(CVE-2020-25687)
啟用DNSSEC時,由于rfc1035.c:extract_name()中缺少長度檢查,2.83之前的Dnsmasq版本在sort_rrset()中容易出現基于堆的緩沖區溢出,其CVSS評分5.9。遠程攻擊者可以通過利用此漏洞在堆分配的內存中引起溢出,并且可以通過濫用長度檢查來導致 dnsmasq 崩潰,最終造成拒絕服務。
此外,在DNS響應驗證中還存在DNSpooq漏洞中的其它3個,其CVSS評分均為4.0。這些漏洞可能導致DNS緩存中毒(或DNS欺騙),使得攻擊者可以替換設備上的合法DNS記錄、破壞DNS緩存并將用戶重定向到任意站點、執行網絡釣魚攻擊、盜竊憑據或散布惡意軟件等。
研究人員的報告表示,通過利用這些漏洞能夠破壞常規的Internet瀏覽以及其它類型的流量,比如電子郵件、SSH、遠程桌面、RDP視頻、語音呼叫和軟件更新等,甚至可能導致分布式拒絕服務攻擊(DDOS)、反向DDOS、蠕蟲攻擊等。
Dnsmasq緩存中毒漏洞(CVE-2020-25684)
在Dnsmasq 2.83之前版本中的reply_query函數中,缺乏適當的address/port檢查,這導致reply_query函數更容易偽造回復給路徑外的攻擊者。
Dnsmasq緩存中毒漏洞(CVE-2020-25685)
dnsmasq在2.83之前的版本中實現的reply_query函數缺乏查詢資源名(RRNAME)檢查,允許遠程攻擊者欺騙DNS流量,從而導致DNS緩存中毒。
Dnsmasq緩存中毒漏洞(CVE-2020-25686)
2.83之前Dnsmasq不檢查是否存在相同名稱的待處理請求,而是轉發新請求,從而使攻擊者可以執行“Birthday Attack” (RFC 5452) 來欺騙DNS流量,從而導致DNS緩存中毒。
影響范圍
Dnsmasq <2.83
研究人員表示,利用DNSpooq漏洞進行攻擊非常容易,可以在幾秒鐘或幾分鐘內完成,且不需要任何復雜的技術或工具。以下是DNS欺騙的流程圖:
目前暫不清楚受DNSpooq漏洞影響的所有公司,JSOF在其報告中著重列出了40個供應商,其中包括Android / Google、Comcast、Cisco、Redhat、Netgear、Qualcomm、Linksys、Netgear、IBM、D-Link、Dell、華為和Ubiquiti等。
截止目前,Shodan搜索顯示 ,目前Internet上有超過100萬個Dnsmasq服務器公開,其中中國分布的Dnsmasq為397246,位列第一:
0x02 處置建議
為了防止DNSpooq漏洞的攻擊,建議將Dnsmasq軟件更新到2.83版本。
臨時措施
針對無法立即更新Dnsmasq的用戶,建議使用臨時措施:
l 如非必要,請將dnsmasq配置為不偵聽WAN接口。
l 使用選項”--dns-forward-max= “減少允許轉發的最大數量,其默認值為150。
l 暫時禁用DNSSEC驗證選項,直到安裝補丁為止。
l 使用為DNS提供傳輸安全性的協議(如DoT或DoH),這將減輕Dnspooq漏洞攻擊的影響,但可能會帶來其它安全隱患,請慎重執行此操作。
l 減少EDNS消息的最大大小可能會緩解某些漏洞,但尚未經過測試,且違背了RFC5625。
0x03 參考鏈接
https://www.jsof-tech.com/disclosures/dnspooq/
https://www.jsof-tech.com/wp-content/uploads/2021/01/DNSpooq_Technical-Whitepaper.pdf
https://www.bleepingcomputer.com/news/security/dnspooq-bugs-let-attackers-hijack-dns-on-millions-of-devices/
https://threatpost.com/dnspooq-flaws-allow-dns-hijacking-of-millions-of-devices/163163/
0x04 時間線
2021-01-19 JSOF披露漏洞
2021-01-20 VSRC發布安全通告
0x05 附錄
CVSS評分標準官網:http://www.first.org/cvss/