OpenSSH の脆弱性 CVE-2024-6409 が FIX:RHEL 上で RCE にいたる可能性

CVE-2024-6409: New Remote Code Execution Vulnerability in OpenSSH

2024/07/08 SecurityOnline — OpenSSH に新たに発見された脆弱性 CVE-2024-6409 は、シグナル処理における競合状態に起因するものであり、リモート・コード実行 (RCE) にいたる可能性があることが判明した。この脆弱性の CVSS スコアは 7.0 であり、特権分離 (privsep:privileged separation) における子プロセス内の、シグナル処理における競合状態により、リモート・コード実行 (RCE) を引き起こす可能性を持つ。


この脆弱性が影響を及ぼす範囲は、OpenSSH バージョン 8.7/ 8.8 と、それらに対応するポータブル・リリースとなる。根本的な原因は、特権分離 (privsep:privileged separation) の子プロセスで動作しているときに、grace_alarm_handler() から cleanup_exit() を呼び出すことにある。通常は、シグナル・ハンドラからcleanup_exit() を呼び出すべきではないとされる。なぜなら、非同期で呼び出すときに、安全ではない他の関数を起動する可能性があるからだ。OpenSSH のアップストリーム・バージョンでは cleanup_exit() により、安全ではない関数を呼び出さないようになっているが、 ダウンストリーム・パッチでは、特に Red Hat の OpenSSH パッケージには、その危険性が存在する。

具体的に言うと、この問題は Red Hat Enterprise Linux (RHEL) 9 と、その派生版に存在する、openssh-7.6p1-audit.patch で発生する。このパッチは、OpenSSH 8.7p1 をベースに構成されている。同様に、OpenSSH 8.7p1/8.8p1 ベースのパッケージを取り込んだ、Fedora バージョン 36/37 にも脆弱性が存在する。しかし、Fedora 38 以降のバージョンは、問題の cleanup_exit() 呼び出しを行わない、最新の OpenSSH リリースへと移行している。

この脆弱性は低特権の子プロセスでトリガーされるため、直接的な影響はというと、以前に公開された CVE-2024-6387 よりも低いと考えられるが、悪用の可能性は依然として深刻な懸念事項である。この脆弱性に悪用に成功した攻撃者は、不正アクセスおよびシステムの完全性の侵害などを達成する可能性を手にする。

現時点において、CVE-2024-6409 の悪用は確認されていないが、この脆弱性は CVE-2024-6387 と類似しており、悪意ある脅威アクターの潜在的な標的となっている。注目すべきは、CVE-2024-6387 を防御するための “-e” 緩和策が、CVE-2024-6409 に対しては完全には無効だという点だ。

影響を受けるバージョンの OpenSSH を実行している管理者は、特に RHEL 9 と古い Fedora リリースを使用しているシステムの場合には、最新バージョンへのアップデートを優先してほしい。悪用のリスクを減らすために、推奨される全ての緩和策を適用することが重要だ。さらに、”LoginGraceTime 0″ 設定オプションを設定することで、CVE-2024-6409/CVE-2024-6387 を効果的に緩和することが可能となる。