DNS 圧縮の実装エラーに関連する FreeBSD、IPnet、および Nucleus NET の脆弱性

研究グループ Forescout Research Labs と JSOF Research は、DNS、mDNS、DHCP、および IPv6 RA メッセージで重複した名前をパックする (メッセージ内の重複したドメイン部分をパッケージする) ために使用される圧縮スキームのさまざまな実装のセキュリティに関する共同研究の結果を発表しました。複数の名前が含まれます)。 作業中に 9 件の脆弱性が特定され、コード名 NAME:WRECK としてまとめられました。

FreeBSD だけでなく、オートメーション デバイス、ストレージ、医療機器、アビオニクス、プリンターで使用される VxWorks、Nucleus、ThreadX リアルタイム オペレーティング システムで広く普及しているネットワーキング サブシステム IPnet、Nucleus NET、NetX でも問題が確認されています。そして家庭用電化製品。 少なくとも 100 億台のデバイスがこの脆弱性の影響を受けると推定されています。

  • FreeBSD の脆弱性 (CVE-2020-7461) により、特別に設計された DHCP パケットを被害者と同じローカル ネットワーク上の攻撃者に送信することでコードの実行を組織化することが可能になり、脆弱な DHCP クライアントによるその処理が引き起こされました。バッファオーバーフローに至る。 この問題は、脆弱性が存在する dhclient プロセスが Capsicum サンドボックス内でリセット権限で実行されており、終了するには別の脆弱性を特定する必要があるという事実によって軽減されました。

    エラーの本質は、「ドメイン検索」リストをリゾルバに転送できるようにする DHCP オプション 119 を使用して DHCP サーバーから返されたパケット内のパラメータのチェックが間違っていることにあります。 解凍されたドメイン名を収容するために必要なバッファ サイズの計算が間違っていたため、攻撃者が制御する情報が割り当てられたバッファを超えて書き込まれる可能性がありました。 FreeBSD では、この問題は昨年 XNUMX 月に修正されました。 この問題が悪用される可能性があるのは、ローカル ネットワークにアクセスできる場合のみです。

  • RTOS VxWorks で使用される組み込み IPnet ネットワーキング スタックの脆弱性により、DNS メッセージ圧縮の不適切な処理により、DNS クライアント側でコードが実行される可能性があります。 結局のところ、この脆弱性は 2016 年に Exodus によって初めて特定されましたが、修正されることはありませんでした。 Wind River への新たなリクエストも返答がなく、IPnet デバイスは依然として脆弱なままです。
  • Siemens がサポートする Nucleus NET TCP/IP スタックで 6 つの脆弱性が確認され、そのうち XNUMX つはリモート コード実行につながる可能性があり、XNUMX つはサービス妨害につながる可能性があります。 XNUMX つ目の危険な問題は、圧縮された DNS メッセージを解凍するときのエラーに関連しており、XNUMX つ目は、ドメイン名ラベルの誤った解析に関連しています。 どちらの問題も、特別にフォーマットされた DNS 応答を処理するときにバッファ オーバーフローを引き起こします。

    脆弱性を悪用するには、攻撃者は、たとえば MTIM 攻撃を実行して DNS サーバーと被害者間のトラフィックを妨害するなど、脆弱なデバイスから送信された正当なリクエストに対して特別に設計された応答を送信するだけで済みます。 攻撃者がローカル ネットワークにアクセスできる場合、DNS サーバーを起動し、mDNS 要求をブロードキャスト モードで送信して問題のあるデバイスを攻撃する可能性があります。

  • ThreadX RTOS 用に開発され、Microsoft に引き継がれて 2019 年に公開された NetX ネットワーク スタック (Azure RTOS NetX) の脆弱性は、サービス拒否に限定されていました。 この問題は、リゾルバー実装における圧縮 DNS メッセージの解析エラーが原因で発生します。

DNS メッセージ内の繰り返しデータの圧縮に関連する脆弱性が見つからなかったテスト済みのネットワーク スタックのうち、次のプロジェクトが命名されました: lwIP、Nut/Net、Zephyr、uC/TCP-IP、uC/TCP-IP、FreeRTOS+TCP 、OpenThreadおよびFNET。 さらに、最初の XNUMX つ (Nut/Net と lwIP) は DNS メッセージの圧縮をまったくサポートしませんが、他のものはエラーなしでこの操作を実装します。 さらに、以前に同じ研究者が Treck、uIP、および PicoTCP スタックで同様の脆弱性をすでに特定していたことに注意してください。

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

コメントを追加します