Systemd是Linux社區最鐘愛的基石,但可能會被惡意DNS服務器劫持或弄崩潰。補丁已出,受影響用戶應盡快安裝。
無論是PC、服務器、平板,還是什么其他小玩意兒,在裝了脆弱Systemd的計算設備上查詢主機名稱,都足夠邪惡DNS服務觸發攻擊的了:該軟件的解析組件易遭欺騙,為查詢響應分配過小內存,導致收到大回復時引發數據溢出,讓攻擊者可覆蓋內存,弄崩進程或遠程執行代碼——這意味著遠程的惡意DNS服務可在你的計算機上運行惡意軟件。
克里斯·科爾森,Ubuntu廠商Canonical雇員,發現了該“systemd-resolved”(網絡名稱解析服務)越界寫漏洞。他解釋道:“惡意DNS服務器可響應特別構造的TCP攻擊載荷,誘騙systemd-resolved分配過小緩存,再寫入任意數據溢出該緩存。”
該編程缺陷是2015年6月被意外引入Systemd版本223的,漏洞編號CVE-2017-9445,且直到今年3月發布的233版本中都還存在。
也就是說,Ubuntu 17.04 和 16.10 版也存在該漏洞。Canonical公司已推出了針對 17.04 和 16.10 版的2個補丁。
該漏洞技術上存在于 Debian Stretch (Debian 9)、Buster (10) 和 Sid (不穩定版)中,但Debian默認禁用systemd-resolved。所以,Debian用戶要么悠閑自行打上補丁,要么坐等下一個版本發布。
其他各具特色的Linux發行版也使用Systemd:請檢查是否有任何可用更新,做好用普通包管理器安裝自家systemd-resolved補丁的準備。Linux用戶都知道怎么做。
同時,Alpine Linux 的包管理器apk中也有幾個安全漏洞:CVE-2017-9669和CVE-2017-9671。這幾個漏洞可通過包文件處理中的緩沖區溢出,讓攻擊者獲得在 Alpine Linux 實例(包括Docker容器中運行的實例)上遠程執行代碼的權限。
利用該漏洞的唯一先決條件,只是找出進程的內存布局而已。地址空間布局隨機化(ASLR)或其他強化安全措施可阻止攻擊者成功利用漏洞,但繞過安全措施也不是不可能。