
これは CVE-2025-32433 (Erlang OTP SSH の脆弱性) の分析です。私はコードを一切書いておらず、コードの動作を説明するコメントと、自分でエクスプロイトを実行するためのサーバー設定手順を書いただけです。
よくある質問 - CVE-2025-32433
Erlang OTPとは何ですか? Erlangは汎用プログラミング言語です。 OTP(Open Telecom Platform)は、BEAM VPNを使用したフォールトトレランスに使用されるミドルウェア、ライブラリ、および設計原則の集合です。
このバージョンのErlangはなぜ脆弱なのですか? OTP 26.2.5.10は、SSHサーバーがクライアントの認証前に特定のSSH接続プロトコルメッセージを適切に拒否しないため、脆弱です。 一般的なフロー:
クライアントがSSHサーバーに接続します。
クライアントとサーバーがSSHアルゴリズムをネゴシエートし、暗号鍵交換を実行します。
暗号化されたSSH接続が確立されます。 --実際のエクスプロイトはここから始まる
クライアントは、パスワード認証や公開鍵認証などのユーザー認証を開始します。
認証が成功すると、クライアントはSSHチャネルを開き、そのチャネルを通じて操作を要求できます。
これがなぜ欠陥なのか: 脆弱なバージョンでは、サーバーはユーザー認証が正常に完了する前に、SSH_MSG_CHANNEL_OPENを含む特定の接続プロトコルパケットを処理できます。 そのため、攻撃者はSSHトランスポート接続を確立しつつ、ユーザー認証をスキップし、認証済みユーザーからのみ受け付けられるべきメッセージを送信できます。これにより、最終的に認証なしのリモートコード実行が可能になります。
自分で再現するにはどうすればよいですか? これをダウンロードして展開します VS Codeで開きます Docker Desktopをインストールしてサインインします このディレクトリで次のコマンドを実行します: docker build -t local-erlang-ssh . 次のコマンドを実行します: docker run --rm -it -p 127.0.0.1:2222:2222 local-erlang-ssh 新しいPowerShellを開き、起動したことを確認します: Test-NetConnection 127.0.0.1 -Port 2222 1分待つと、TcpTestSucceeded: true と表示されるはずです。 Pythonファイルに移動して「実行」をクリックします ターミナルにエクスプロイトが表示されるはずです。 「docker ps」コマンドを使用してコンテナIDを取得します。次に、このコマンドを貼り付けます: docker exec CONTAINER_ID cat /lab.txt 「pwned」という単語が返され、エクスプロイトが機能したことが示されます。 コンテナを停止するには、Dockerコンテナを起動した元のターミナルに戻り、Control+Cを押します(2回押す必要がある場合があります)。
この脆弱性からデバイスを保護するにはどうすればよいですか? Erlang OTP SSHサーバーを使用している場合は、26.2.5.11以降に更新してください。
詳細はどこで学べますか? 句読点の前後の"["と"]"を削除してください。ホットリンクが嫌いなので。 Matt Keelyによるオリジナルコード: https[:]//github[.]com/ProDefense/CVE-2025-32433/blob/main/CVE-2025-32433.py Matt Keelyがこのコードを作成した方法のウォークスルー: https[:]//platformsecurity[.]com/blog/CVE-2025-32433-poc NISTウェブサイト: https[:]//nvd.nist[.]gov/vuln/detail/CVE-2025-32433 Erlang: https[:]//www.youtube[.]com/watch?v=M7uo5jmFDUw