重要なポイント

  • Erlang/OTPに重大な脆弱性(CVE-2025-32433)が見つかりました。この脆弱性のCVSSスコアは10(緊急)です。
  • この重大な脆弱性はErlang/OTPソフトウェアプラットフォーム内のSSHサーバーに含まれているものであり、この脆弱性を悪用すると同サーバー上でリモートコード実行(RCE)が可能となります。
  • この脆弱性を悪用すると、認証されていない攻撃者がログイン情報や認証情報が提供される前に細工したSSHパケットを送信することにより、当該システムに対する完全なアクセス権を取得できるようになります。
  • Erlang/OTPのネイティブSSHサーバーを実行しているあらゆるシステムが、この脆弱性の影響を受けます。そのようなシステムは、通信およびネットワークアプライアンスをはじめ、IoT、クラウドプラットフォーム、さらにはデータベースなどにも組み込まれている可能性があります。
  • この脆弱性の影響を受けるシステムには、直ちにパッチを適用することをお勧めします。

背景情報

Erlang/OTP(Open Telecom Platform)のSSHサーバーコンポーネントに重大な脆弱性(CVE-2025-32433)が見つかりました。この脆弱性は2025年4月16日に公開されたものであり、これを悪用すると当該SSHサーバー上において認証なしでリモートコード実行(RCE)が可能となります。この脆弱性のCVSS vスコアは10.0であり、これは最高の重大度を意味しています。

この脆弱性を悪用すると、Erlang/OTPベースのSSHサービスへのアクセス権を持つ認証されていない攻撃者が、認証情報を提供せずに任意のコードを実行できるようになります。悪用に成功した場合、認証が完了する前であってもSSH接続を開始して悪意あるデータを送信するだけで、標的とするシステムをハッキングできる可能性があります。さらに、Erlang/OTPのSSHデーモンが昇格した権限(rootなど)で動作している場合、この脆弱性の悪用に成功すると、システムを完全に制御できるようになります。

■欠陥のあるSSHハンドシェイク
この脆弱性は、Erlang/OTPに組み込まれているSSHサーバーが行うSSHハンドシェイクメッセージ処理の部分に存在します。SSHプロトコルの仕様(RFC 4252 §6)に従うならば、特定のメッセージタイプ(IDが80以上のもの)は、ユーザー認証後のステージ用に予約されています。

SSHクライアントが認証前にそのようなメッセージを送信しようとした場合、この仕様に準拠しているサーバーであれば、直ちにセッションを切断しなければなりません。ところが、Erlang/OTPのSSHサーバーはこの仕様に従っておらず、そこに脆弱性が存在することになります。この脆弱性は、ルール大学ボーフムの研究者チーム(Fabian Bäumer、Marcus Brinkmann、Marcel Maehren、Jörg Schwenk)により発見され、同チームは責任を持ってこの脆弱性を公表しました。公式勧告は、2025年4月16日に、OpenwallメーリングリストとErlang/OTPのGitHubリポジトリを通じて公開されました。

■Erlang/OTPの何が問題だったのか
影響を受けるErlang/OTPのバージョンでは、SSHデーモンがこのSSHプロトコルの仕様に従っておらず、許可されないメッセージを早期に受信した場合であっても、SSHサーバーはセッションを切断しないようになっています。状態管理におけるこのような見落としは、攻撃者が、認証されていないハンドシェイク時に認証後のフェーズを意図したメッセージをインジェクトできる可能性があることを意味します。その場合、SSHサーバーは、あたかもクライアントが認証済みであるかのように、そのようなメッセージを誤って受け入れて処理することになります。

具体的に言えば、この脆弱性を悪用することで、脅威アクターは認証前のチャネルをハイジャックできるようになります。これを実証するために、SSHセッションを開始するためのチャネルオープンリクエストを送信した後、ログイン前に、ペイロード(実行するコマンドなど)を含むチャネルリクエストを即座に送信するような概念実証(PoC)コードが作成されました。脆弱性のあるErlang/OTPのSSHサーバーは、このようなタイプのコマンドを拒否するチェック機能を持たないため、チャネルをオープンした後、SSHサービスの持つ権限で、リクエストされたコマンドを実行します。このような悪用は、有効なユーザー名や鍵がない場合であっても、ハンドシェイク時に発生する可能性があります。

注:根本的な原因は、Erlang/OTPのSSHライブラリに含まれている「ssh_connection:handle_msg」関数に、適切な条件文が欠落していたことにありました。この問題を修正するためのパッチは、「authenticated = false」が成り立っている際に送信された「IDが80以上」であるメッセージを検知した場合には、直ちに接続を終了するようなチェック機構を導入するというものでした。言い換えれば、このようなパッチを適用するならば、当該プロトコルが意図している通りに、SSHサーバーが、認証時に不正なメッセージシーケンスを「即座に強制終了」することを保証できるようになります。

セキュリティ研究者は、このバグを悪用するのは驚くほど簡単だと述べています。Horizon3.aiの攻撃チームは、1日もかからずにこの悪用を再現することに成功し、実用的な攻撃を作成するのは「驚くほど簡単」であったと述べました。メモリの破壊は必要ありません。この欠陥はロジック上のミスであり、この欠陥を悪用することで、脅威アクターは直接コマンドを実行できるようになります。

この脆弱性の公表後すぐに公開された「同脆弱性を悪用する概念実証(PoC)プログラム」は、攻撃者が1回の不正なSSHハンドシェイクを経由して、root権限で当該サーバー上にファイルを作成できることを実証しました。この脆弱性が簡単に悪用できることから、専門家たちは、大量の悪用プログラムが今すぐにでも出回る可能性があると警告しています。

生産終了となったVMwareの製品やバージョンは、Broadcomの勧告に含まれておらず、これらに関しては今後セキュリティパッチがリリースされる予定もありません。このため、影響を受ける製品の生産終了バージョンにも、この脆弱性が存在している可能性があります。サイバーリーズンでは、関連する製品を、重要なセキュリティアップデートを受けることができる「サポートされているバージョン」へとアップグレードすることを推奨しています。

■影響:攻撃が可能にするもの
脆弱性CVE-2025-32433がもたらす影響は、深刻なものとなる可能性があります。なぜなら、この脆弱性を悪用すると、認証前にコードの実行が許可されるため、攻撃者がターゲットデバイス上で不正なシステム管理者になることが可能となるからです。システム管理者となると次の操作が行えるようになります。

  • 標的システムを完全に制御:送信するコマンドはすべて、SSHサービスプロセスが持つ権限で実行されます。多くのErlang/OTP環境では、SSHデーモンはrootとして実行されるため、標的システムに関する完全な制御を得ることができます。これにより、ファイルの作成や変更、マルウェアのインストール、新しいユーザーアカウントの追加、任意のプログラムの実行などを行えるようになります。たとえば、研究者は、攻撃者がこの欠陥を悪用した後、ランサムウェアのインストールや機密データの窃取を行う可能性があると指摘しています。
  • 静かな不正侵入:有効な認証情報やユーザーインタラクションを必要としないため、この攻撃は、ログイン失敗のような警告を出すことなしに発生する可能性があります。この攻撃は認証前のハッキングであるため、通常の認証ログをトリガしない可能性があります。最初の侵入は最小限の痕跡しか残しません。
  • ラテラルムーブメントとピボッティング:侵入に成功すると、ハッキングしたシステムを前線基地として利用できるようになります。侵入先の企業ネットワークでは、ハッキングされたErlang/OTPサービスを利用することで、当該ネットワークのより深い部分へのピボッティングや、内部システムの調査、データの流出などが引き起こされる可能性があります。
  • サービス拒否または妨害行為:アクセス権を取得した後、単純にデバイスをクラッシュさるか、または重要なサービスを停止させる可能性があります。これにより、高可用性システム(テレコムスイッチやメッセージングサーバーなど)であっても、サービス停止やダウンタイムが引き起こされる可能性があります。部外者が恣意的にプロセスを停止させることや、悪意あるタスクによりシステムを過負荷状態にすることが可能となるならば、Erlangの持つフォールトトレランス機能に関する評判が低下することになります。

この脆弱性が実際に悪用されると、ランサムウェアの導入から重要なインフラの破壊工作に至るまで、さまざまな攻撃が容易になる可能性があります。たとえば、Erlangが動作しているテレコムのコアルーターをシャットダウンするか、トラフィックを再ルーティングすることにより、ネットワークの混乱が引き起こされる可能性があります。

さらに、IoTセンサーネットワークがそれ自体に敵対することで、偽のデータを送り込むようになるか、またはボットネットの一部となる可能性もあります。この脆弱性がもたらす影響の範囲は、Erlang/OTPのSSHがどこで使われているかにより異なりますが(後述を参照)、Erlang/OTPがどこで使われていようとも、この脆弱性を悪用することで、ホストの完全な乗っ取りが可能となります。

■影響を受けるシステムとプラットフォーム:私は影響を受けるのか?
もしあなたがErlang/OTPで構築されたSSHサーバーを運用しているのであれば、上記の問いに対する答えは「イエス」です。オリジナルの勧告では、修正リリース以前のErlang/OTPに含まれているすべてのバージョンのSSHが脆弱であることが明確に示されています。これは特定のオペレーティングシステムやデバイスに結び付けられる問題ではなく、ErlangプラットフォームのSSHライブラリに関する問題です。Erlang/OTPのSSHコンポーネントを含んでいるソフトウェアやファームウェアはすべて危険にさらされている可能性があります。Erlang/OTPがどの分野で使われているか、代表的な例を下記に示します。

■通信およびネットワークアプライアンス
Erlangは、Webアプリケーション、クラウドコンピューティング、金融サービスなどを含む幅広い業種において、フォールトトレラントな分散システムを構築するための言語として人気があります。Ciscoのネットワーク管理システム(ルーターに組み込まれたTail-f ConfDエンジンなど)はErlang/OTPで構築されています。多くの場合、これらのシステムはSSHベースの管理コンソールを提供しており、OTPのSSH実装に依存している可能性があります。Ericssonのキャリアグレードのテレコムスイッチ(99.9999999%の信頼性で有名なAXD 301など)は、数百万行にも及ぶErlangコードを実行しています。

■IoTと産業制御システム
Erlang/OTPは、その高い並列処理能力と信頼性が理由で、IoTソリューションや運用技術(OT)ソリューションの分野でよく採用されています。また、Erlang/OTPは、産業用オートメーションコントローラー、スマートセンサー、エッジコンピューティングゲートウェイなどの分野でも採用されています。たとえば、オープンソースのNervesプロジェクトは、IoTデバイス用の組み込み型Elixir/Erlangプラットフォームを提供していますが、開発者がデバイス上でシェルをリモート操作できるようにするために、OTPのSSHを使用しています。デフォルトでは、Nervesデバイスは(Erlangのsshを使って)ポート22経由でSSHサーバーを起動し、IExコンソールとファイル転送機能を提供します。これは便利な機能ですが、脆弱性CVE-2025-32433を悪用する場合、攻撃ベクターとなる可能性があります。

ErlangベースのSSHを公開しているIoTガジェットや産業用コントローラーは(デバッグ用であれリモート管理用であれ)、ネットワークベースの攻撃者により完全に乗っ取られる可能性があります。さらには、Erlang/OTPソフトウェアを実行しているスマートメーター、PLC、セキュリティカメラなども考慮に入れる必要があります。これらは小規模な端末にすぎませんが、もしそれらがハッキングされたならば、深刻なセキュリティリスク(スパイ行為、妨害行為、ボットネットの募集、大量のDDoS攻撃の募集など)を引き起こす可能性があります。

■エンタープライズ向けソフトウェアとクラウドサービス
Erlang/OTPは、広く利用されているいくつかのソフトウェアプラットフォームにおいてバックボーンとなっています。例としては次のものが挙げられます。

  • メッセージブローカーとキュー:RabbitMQは 「Erlang/OTPで書かれた」人気のあるメッセージキューであり、クラウドネイティブ環境によく導入されています。デフォルトでは、RabbitMQはその運用においてSSHサーバーを必要としませんが、管理者はリモートシェルを取得するためか、またはディストリビューションクラスタリングのような機能を使うために、組み込み型のErlang SSHを有効にすることがあります。RabbitMQは、クラスタリングとフェイルオーバーを実現するために、Open Telecom Platformフレームワーク上に構築されています。ネットワークからアクセス可能なポートでOTP SSHインターフェイスを有効にしているRabbitMQインスタンス(または同様のErlangベースのサービス)は、脆弱性CVE-2025-32433による影響を受けます。クラウド環境では、RabbitMQがファイアウォールの背後に置かれていない場合には、この影響が特に危険なものとなります。なぜなら、攻撃者がKubernetesやVMクラスタ内のRabbitMQノードをターゲットとしてメッセージフローの制御権を奪うか、またはクラウド環境へのピボッティングを行う可能性があるためです。
  • データベースと分散ストア:Apache CouchDBや以前のRiak KVデータベースは、Erlang/OTPを使って実装されています。これらは通常、SSHインターフェイスではなくHTTPインターフェイスをクライアントに公開しています。しかし、メンテナンスやクラスタリングのために、Erlang SSHサーバーが動作している場合もあります(たとえば、CouchDBはErlangリモートシェルを許可するように設定できます)。この場合、当該SSHインターフェイスは危険にさらされることになります。OTP SSHが外部に公開されていない場合であっても、この脆弱性が存在するということは、ネットワーク内におけるインサイダーやラテラルムーブメントの実行者が、当該DBサーバー上で権限を昇格させるために、この脆弱性を悪用できることを意味するからです。
  • メッセージングとチャットシステム:WhatsAppのバックエンドはErlang/OTPで構築されています。エンドユーザーがSSH経由で直接接続することはありませんが、WhatsAppのサーバーインフラには、エンジニア向けにErlangリモートコンソール機能が含まれている場合があります。Facebook(Meta)は、このような内部管理ポートにパッチが適用されていることを保証する必要があります。同様に、EjabberdやMongooseIMのようなXMPPチャットサーバーもErlangで動作しています。デフォルトでは、Ejabberdは管理者用のOTP SSHデーモンを有効にしていないようですが、管理者が同デーモンを有効にしている場合には、それらのサーバーには脆弱性が存在していることになります。

■オペレーティングシステムとディストリビューション
Erlangそれ自体はOSではありませんが、Erlangは多くのLinuxディストリビューションにパッケージ化された状態で提供されます。たとえば、UbuntuやDebianなどのディストリビューションには、Erlang/OTPランタイムシステムが同梱されています。サーバー上のローカルアプリケーションやサービスが(OpenSSHではなく)OTP SSHを利用している場合、それらは影響を受けることになります。なお、サイバーリーズンコンサルティングチームの専門家が関連文書を確認したところ、このCVEが一般的なOpenSSHデーモンに影響を与えるという証拠は見つかりませんでした。このCVEはErlangのSSH実装に特有のものです。Ubuntuでは、このCVEの優先度を「高」と位置付け、サポートされているバージョンのアップデートを1日以内にリリースしました。管理者は、自社で使用しているOSが提供するErlangがアップデートされていることを確認する必要があります。

■CVE-2025-32433がもたらす危険性を説明するための例え話
フロントデスクに警備員がいる、施錠された建物を想像してください。通常、誰かが入ってくると、警備員を通じてチェックインを行い、身分証明書を見せて身元確認を行い、訪問者バッジを受け取った上で初めて、建物内に入ることが許可されます。ここで、「私は会議室Aでミーティングする予定があります」と言って入ってきた人が、警備員により自動的にビルへの入室が許可されるケースを想像してみましょう。警備員は、その人の身元や実際にミーティングがあるかどうかを確認せずに、ドアのロックを解除するのです。つまり、警備員は、訪問者の要求が正当な要求のような言い回しであるという理由だけで、その要求を有効なものとして扱うのです。例えて言うならば、CVE-2025-32433がもたらす危険性とはこのようなものです。

ガイダンス

回避策(一時的):

  • ネットワークアクセスを制限すること:ファイアウォールルールやセキュリティグループを使って、SSHポートにアクセスできるIPアドレスを制限します。
  • SSHサーバーを無効にすること:Erlang/OTPのSSH機能がミッションクリティカルなものでない場合には、パッチの適用が可能となるまでErlang/OTPのSSH機能をオフにすることを検討してください。
  • 封じ込め:Erlangノードには、セキュアな管理ネットワークまたはVPNを通じてのみアクセスできるようにします。

検知と対応:

  • この脆弱性がお使いの環境で狙われている兆候がないかを調べるために、脅威ハンティングをプロアクティブに実施します。
    • 異常なSSHトラフィックや、関連付けられているログインイベントのない接続を監視します。
        erlangやbeam.smpプロセスが、想定されたコンテキスト以外でシステムコマンドを実行していないかどうかチェックします。
          ログを監査することで、このCVEが公開された時期に、予期しないファイルの作成やサービスの中断がなかったかどうかを調べます。
            この脆弱性が悪用された場合、明らかな認証失敗のログが残らない可能性があるため、予期しないSSH接続やErlang VMにより実行された奇妙なコマンドがないかどうかを調べます。
              可能であれば、ロギングの冗長性を高めます。パッチを適用すると、誰かがこの攻撃を試みた場合に、サーバーはエラーをログに記録した上で、当該セッションを切断するようになります。

            推奨事項

            Cybereason DFIRチームによる推奨事項を下記に示します。
            多くのCVEと同様に、パッチを適用することが最優先事項となります。Erlang/OTPのメンテナーは、次の表に示すいくつかのパッチバージョンで修正をリリースしています。

            これらのリリースはプロトコルチェックを実装することで、不正なメッセージを適切に拒否し、脆弱性の悪用を阻止します。Erlang/OTPをシステムパッケージマネージャから入手する場合は、これらのバージョン番号を確認してください。Ubuntuでは、新しいビルドリビジョンで、Erlang 24および22のパッケージに対する修正をバックポートしています。ベンダーが提供するErlang/OTP(その他の製品に組み込まれているもの)を使用している場合は、当該ベンダーにより提供される勧告を注視してください。CiscoやEricssonのようにErlangを自社製品に組み込んでいる企業は、上記のバージョンに適合するようなアップデートを提供するはずです。

            2025年サイバー脅威予測 〜2024年の主要な脅威の振り返りと、2025年に警戒すべき脅威の予測〜

            2024年は新たな感染手法やLinuxを狙った標的型攻撃、生成AIの悪用が注目され、またランサムウェアの後継グループも登場し、攻撃根絶の難しさが浮き彫りとなりました。

            本資料では、2024年に顕在化したサイバー空間における脅威の傾向を踏まえ、特に大きな影響を及ぼすと考えられる4つの脅威を2025年のサイバーセキュリティ予測として取り上げています。2024年の主要な脅威を振り返りつつ、2025年に予測されるサイバー脅威について解説します。

            2024年度のご自身が所属する組織におけるサイバーセキュリティ対策の検討にお役立てください。
            https://www.cybereason.co.jp/product-documents/survey-report/12826/