DNS クエリで W 文字が誤って処理される BIND 9.16.17 のバグ

修正アップデートは、安定版 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 および mapto lower) から「w」文字が省略され、その結果、ドメイン名の「W」および「w」文字が次のように置き換えられました。シーケンス "\000" " が存在し、マスクを使用してリクエストを処理するときに間違った結果が返されます。 たとえば、DNS ゾーンにレコード「*test.local.」が含まれていたとします。 1 UVW test.local という名前に対する 127.0.0.1 インチのリクエストにより、「uvw test.local」ではなく「uv/000 test.local」という名前が返された応答が生成されました。

さらに、リクエスト内の「w」文字の大文字と小文字が DNS ゾーンの大文字と小文字が異なる場合、動的ゾーンの更新中に「w」文字を「\000」に置き換えると問題が発生することが確認されました。 たとえば、ゾーンにレコード「WW.example.」が存在するときに「foo.ww.example.」の更新が送信された場合、「foo.\000\000.example.」として処理されました。 文字置換に関する問題は、プライマリ DNS サーバーからセカンダリ DNS サーバーへのゾーン転送を実行するときにも発生する可能性があります。

バージョン 9.16.18 および 9.16.18 で未解決のまま残っているさらに 9.17.15 つのエラーが特定されたため、更新プログラム 9.16.16 の公開が遅れました。 エラーは初期化中にデッドロックを引き起こし、dnssec-policy が異なるビューに存在する同じゾーンを使用する構成で発生します。 このような設定を使用しているユーザーは、BIND バージョン XNUMX にダウングレードすることをお勧めします。

出所: オープンネット.ru

コメントを追加します