Barracuda Email Security Gatewayの脆弱性、ログイン不要でroot権限の奪取が可能に

Barracuda Email Security Gateway(ESG)に存在する2件の重大な脆弱性を連鎖させると、認証なしの攻撃者がroot権限でリモートコード実行(RCE)を達成できることが明らかになりました。攻撃では、認証前の認可バイパスとOSコマンドインジェクションを組み合わせます。

watchTowr Labsのセキュリティ研究者Sina Kheirkhah氏が、2026年11月5日に攻撃手法の詳細を公開しました。

脆弱性の識別番号はCVE-2026-116606とCVE-2026-111560です。Barracudaは11月2日に公開したアドバイザリで、両方の脆弱性を修正しました。CVE-2026-116606はESGに影響する認証前の認可バイパスで、CVSSスコアは9.3(Critical)です。

CVE-2026-111560はOSコマンドインジェクションで、CVSSスコアは8.6(High)です。ESGのほか、Load Balancer ADC、Message Archiver、WAF Control Center、Web Application Firewall、Web Security Gatewayにも影響します。watchTowrによると、修正はバージョン9.4.0.029に含まれています。

watchTowrは、ESGのバージョン9.4.0.027と修正版の9.4.0.029を比較(diff)しました。変更されたPerlファイルには、Index.pm、Backup2.pm、bayesian_upload.pm、UserRole.pm、Params.pm、fix_tz.plが含まれていました。

認可バイパスの原因はIndex.pmにあります。/cgi-mod/index.cgiに対し、new_passwordとretype_passwordの値が一致しないPOSTリクエストを認証なしで送信すると、ERROR_PASSWD_CHANGEというステータスが発生します。

脆弱なコードは、bailout()を呼び出さず、権限の低いログイン画面用の$userroleを返してしまいます。その結果、呼び出し元のresponse()ルーチンが各モジュールのハンドラーを実行し続けます。パッチでは、専用のJSONログインレスポンスを通じてリクエストを停止するようになりました。

コマンドインジェクションの原因は、安全でないシェル呼び出しです。Backup2.pmとfix_tz.plは、Perlのバッククォートを使ってsedコマンドを組み立てており、system_timezoneの値を検証せずに埋め込んでいます。

たとえばUTC#’;touch /tmp/watchTowr;#のようなペイロードを使うと、引用符で囲まれたsed式が閉じられ、新しいコマンドが開始され、残りの部分はコメントアウトされます。この脆弱性の悪用に、複雑なエクスプロイトは必要ありません。他のメールインフラで見つかった同様の認証なしシェルインジェクションでは、すでにWebシェルの設置につながっています。

このバグが特に危険なのは、システムがfix_tz.plをsudo経由で起動するため、注入されたコマンドがrootとして実行される点です。攻撃者はbayesian_upload.pmのハンドラーを経由して、この実行箇所(シンク)に到達します。

このハンドラーはアップロードされたバックアップを受け取ってrestore_allに渡し、アーカイブを展開してbackup.xmlを読み込みます。Spam_Configコンポーネントは、MySQLのダンプをローカルデータベースに復元しますが、このダンプによってsystem_timezoneの行を上書きできます。その後、finalize_restoreルーチンが、改ざんされた値を実行します。

バックアップの整合性チェックでも、この攻撃は防げません。各ファイルのチェックサムはmd5(file_bytes + secret + “.”)で計算されますが、このsecretは「Barracuda Networks is your new best friend」という固定文字列です。そのため、誰でも細工したアーカイブ用に有効なチェックサムを計算できます。

パスワード変更のパラメータ、pu_bayesian_uploadフィールド、悪意あるtar形式のバックアップを組み合わせた1回のマルチパートリクエストで、攻撃の連鎖が完成します。エッジサービスにおける認証ロジックの欠陥も、細工した1回の入力で悪用された例があります。

パッチではバッククォートの呼び出しを削除し、タイムゾーンのファイルをPerl標準のファイル読み書きルーチンで書き換えるようにしました。さらに、system_timezoneが/usr/share/zoneinfo/配下に実在するファイルに解決されることも必須にしています。Barracudaは、ESG向けパッチとしてBNSF-40425とBNSF-40430を挙げており、別途commandも案内しています。

16,000以上のSOCチームがANY.RUNを活用し、脅威調査を効率化して手作業を減らしています。自社チームで試してみる

翻訳元: https://cyberpress.org/barracuda-email-security-gateway-flaws/

本記事は cyberpress.org の記事を翻訳・要約したものです。