Kemp LoadMaster デバイス(ファームウェア < 7.2.60)は、libkemplink.so ライブラリの isreverse() メソッドと locate_fqdn() メソッドに深刻なバッファオーバーフローの脆弱性が存在します。この脆弱性は、DNS 名に割り当てられた256バイトのバッファサイズが不十分であることに起因し、特殊文字や Unicode 文字を含む細工された DNS リクエストを送信することで悪用される可能性があります。
攻撃が成功すると、即座にクラッシュし、サービス拒否 (DoS) 状態に陥ります。スタックカナリートークンが存在するため、さらなる悪用は防止されますが、攻撃者がスタックカナリートークンを漏洩させる別の脆弱性を見つけた場合、リモートコード実行 (RCE) の可能性は否定できません。
この脆弱性は、LoadMaster デバイスの公開された DNS サービスに対して TCP または UDP 経由で DNS リクエストを送信することで簡単にトリガーされます。簡単な概念実証は次のとおりです:dig @kempdeviceip 😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀.com(一部の Linux フレーバーでは、+noidnout +noidnin を追加する必要があります)
このエクスプロイトは、DNS 名解決プロセスにおける特定のステップを利用します。割り当てられた256バイトのバッファは、ネットワーク経由で送信される DNS 名の標準最大サイズであり、概念実証もこの制限内に収まっていますが、特殊文字や Unicode 文字は処理中にエスケープされる際にサイズが拡大します。その結果、エスケープ後のバッファサイズが元の割り当てを超えます。DNS コンポーネントのフォーク元である Bind9 ライブラリのドキュメントとソースコードによると、安全な動作には少なくとも1004バイトのバッファが必要であり、保守的なバッファサイズとして1023バイトが推奨されています。詳細はこちらを参照してください。
タイムライン: