Błąd w BIND 9.16.17 powodujący niewłaściwą obsługę znaku W w zapytaniach DNS

Opublikowano aktualizacje korygujące dla stabilnej gałęzi BIND 9.16.18 i będącej w fazie rozwoju eksperymentalnej gałęzi 9.17.15, które naprawiają poważny błąd, który pojawił się w wydaniach BIND 9.16.17 i 9.17.14 opublikowanych w zeszłym tygodniu (dzień po tej wydaniach programiści ostrzegali przed problemem i zalecali, aby nie instalować wersji 9.16.17 i 9.17.14).

W wersjach 9.16.17 i 9.17.14 znak „w” został pominięty w tabelach mapowania znaków małych i wielkich liter (maptoupper i maptolower), co spowodowało zastąpienie znaków „W” i „w” w nazwach domen znakami sekwencję „\000” „i zwracanie nieprawidłowego wyniku podczas przetwarzania żądań przy użyciu maski. Na przykład, jeśli strefa DNS zawierała rekord „*.sub.test.local. 1 Żądanie 127.0.0.1″ dotyczące nazwy UVW.sub.test.local” spowodowało odpowiedź, która zwróciła nazwę „uv/000.sub.test.local” zamiast „uvw.sub.test.local”.

Dodatkowo zauważono problemy z zamianą znaku „w” na „\000” podczas aktualizacji strefy dynamicznej, jeśli wielkość liter „w” w żądaniu różniła się od przypadku w strefie DNS. Przykładowo, jeśli aktualizacja została wysłana dla „foo.ww.example.”, gdy w strefie znajdował się rekord „WW.example.”, została ona przetworzona jako „foo.\000\000.example.”. Problemy z podstawieniem znaków mogą również wystąpić podczas transferu stref z podstawowego do pomocniczego serwera DNS.

Publikacja aktualizacji 9.16.18 została opóźniona ze względu na zidentyfikowanie dwóch kolejnych błędów, które pozostały nierozwiązane w wersjach 9.16.18 i 9.17.15. Błędy powodują zakleszczenia podczas inicjalizacji i występują w konfiguracjach, w których dnssec-policy wykorzystuje te same strefy obecne w różnych widokach. Użytkownikom posiadającym takie ustawienia zaleca się przejście na wersję BIND 9.16.16.

Źródło: opennet.ru

Dodaj komentarz