CVE-2026-50252 in Unbound
要約
〜によって VulDB • 2026年07月22日
NLnet LabsのUnbound 1.4.22から1.25.1(含む)において、UDP送信元ポートはランダム化されており、DNSトランザクションのエントロピーを増加させるための秘密値として機能することを意図しています。しかし、リゾルバーのロードバランシングポリシーが送信元ポートに依存しており、かつその結果が外部に漏洩する場合、この機密性は損なわれます。
本脆弱性は、ロードバランシングポリシーが入力されるUDP送信元ポートおよびIPアドレスに対して一貫性を持っており、さらに乱数生成源として入力されるUDP送信元ポートに強く依存している場合に発生します。Unbound(デフォルト設定)でSO_REUSEPORT構成オプションが有効化されている場合('so-reuseport: yes')、これらの条件を満たし、DNSキャッシュポイズニング攻撃に対して脆弱になります。
起動時、Unboundは利用可能なUDP送信元ポート空間をランダムに分割し、ほぼ等しいサイズの互いに素なサブセットを作成して、各サブセットを特定のワーカースレッドに割り当てます。着信DNSクエリを受信すると、カーネルのSO_REUSEPORTロードバランシング機構により、そのクエリは特定のスレッドに関連付けられたソケットに対して決定論的に割り当てられます。その後、その要求の解決中に生成されるすべての送信元DNSクエリは、対応するスレッドに割り当てられたポートサブセットから選択された送信元ポートを使用します。
これらのポートサブセットはスレッド間で互いに素であるため、権威ネームサーバーに対するリゾルバーからの送信先DNSクエリで観測される送信元ポートは、元のクライアントクエリを処理したワーカースレッドの信頼できる指標となります。悪意のある攻撃者は、(特定の固定された送信元IPアドレスに対して)入力UDP送信元ポートとUnboundワーカースレッドのマッピングを取得し、これを利用して各スレッドあたりのランダムなポート空間を実質的に縮小することで、DNSキャッシュポイズニング攻撃を行うことができます。
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.