BIND 9.16.17 中的一個錯誤導致 W 字元在 DNS 查詢中被錯誤處理

已發布穩定 BIND 9.16.18 分支和正在開發的實驗性 9.17.15 分支的修正更新,修復了上週(次日)發布的 BIND 9.16.17 和 9.17.14 版本中出現的嚴重錯誤。版本中,開發人員警告了該問題並建議不要安裝版本9.16.17 和9.17.14)。

在9.16.17和9.17.14版本中,小寫和大寫字符映射表(maptoupper和maptolower)中省略了“w”字符,這導致域名中的“W”和“w”字符被替換為序列“\000 ”“並在使用掩碼處理請求時傳回錯誤結果。 例如,如果 DNS 區域包含記錄「*.sub.test.local」。 1 127.0.0.1「對名稱 UVW.sub.test.local」的請求產生的回應回傳名稱「uv/000.sub.test.local」而非「uvw.sub.test.local」。

此外,如果請求中「w」字元的大小寫與 DNS 區域中的大小寫不同,則在動態區域更新期間將「w」字元替換為「\000」時會出現問題。 例如,如果發送了“foo.ww.example.”的更新,而區域中存在記錄“WW.example.”,則會將其處理為“foo.\000\000.example.”。 當執行從主 DNS 伺服器到輔助 DNS 伺服器的區域傳輸時,也可能會出現字元替換問題。

由於發現版本 9.16.18 和 9.16.18 中還有兩個尚未解決的錯誤,更新 9.17.15 的發布被推遲。 錯誤會導致初始化期間出現死鎖,並且會在 dnssec-policy 使用不同視圖中存在的相同區域的配置中發生。 建議具有此類設定的使用者降級到 BIND 版本 9.16.16。

來源: opennet.ru

添加評論