リモートおよびローカルの root アクセスを許可する OpenSMTPD の脆弱性

クアリス株式会社 明らかに メールサーバーの別のリモートの重大な脆弱性 (CVE-2020-8794) OpenSMTPD、OpenBSD プロジェクトによって開発されました。 XNUMX月末に特定されたものと同様 脆弱性、新しい問題により、root ユーザー権限を持つサーバー上で任意のシェル コマンドをリモートで実行できるようになります。 脆弱性 排除された 問題になっている OpenSMTPD 6.6.4p1.

この問題は、メールをリモート メール サーバーに配信するコードのバグによって発生します (受信接続を処理するコードのバグではありません)。 攻撃はクライアント側とサーバー側の両方で可能です。 クライアント側では、OpenSMTPD が内部ネットワーク インターフェイス (localhost) でのみリクエストを受け入れ、メール メッセージを外部サーバーに送信する OpenSMTPD のデフォルト設定で攻撃が可能です。 この脆弱性を悪用するには、レターの配信中に OpenSMTPD が攻撃者が制御するメール サーバーとのセッションを確立するか、攻撃者がクライアント接続 (MITM または DNS または BGP 経由の攻撃中のリダイレクト) に割り込むことができれば十分です。 )。

サーバー側の攻撃の場合、OpenSMTPD は、他のメール サーバーから外部ネットワーク リクエストを受信するか、任意の電子メール (Web サイト上のアドレス確認フォームなど) にリクエストを送信できるサードパーティ サービスを提供するように設定する必要があります。 たとえば、攻撃者が OpenSMTPD サーバーに接続し、間違ったレターを (存在しないユーザーに) 送信すると、その応答がエラー コード (バウンス) を含むレターを攻撃者のサーバーに送信することになります。 攻撃者は、OpenSMTPD が接続して攻撃者のサーバーに通知を配信するときにこの脆弱性を悪用する可能性があります。 攻撃中に挿入されたシェル コマンドは、OpenSMTPD の再起動時に root 権限で実行されるファイルに配置されるため、攻撃を完了するには、攻撃者は OpenSMTPD が再起動するまで待つか、OpenSMTPD のクラッシュを開始する必要があります。

この問題は、接続の確立後にリモート サーバーから返される複数行の応答 (たとえば、「250-ENHANCEDSTATUSCODES」や「250 HELP」) を解析するコード内の mta_io() 関数に存在します。 OpenSMTPD は、最初の行には「-」文字で区切られた 0 桁の数字とテキストが含まれ、XNUMX 行目にはスペースで区切られた XNUMX 桁の数字とテキストが含まれると計算します。 XNUMX 行目に XNUMX 桁の数字の後にスペースとテキストが続かない場合、テキストの定義に使用されるポインタは「\XNUMX」文字に続くバイトに設定され、末尾に続くデータのコピーが試行されます。行をバッファに入れます。

OpenBSD プロジェクトの要請により、この脆弱性のエクスプロイトの詳細の公開は、ユーザーがシステムを更新できるように、2 月 26 日まで延期されました。この問題は 2015 年 12 月以来コードベースに存在していましたが、ルート権限でのコード実行へのエクスプロイトは 2018 年 5 月以来可能でした。研究者は、OpenBSD 6.6、OpenBSD 5.9、 Debian 10、 Debian 11(テスト版)とFedora 31。

OpenSMTPDでも 特定された 別の脆弱性(CVE-2020-8793)では、ローカルユーザーがシステム上の任意のファイルの最初の行を読み取ることができます。たとえば、rootユーザーのパスワードハッシュを含む/etc/master.passwdの最初の行を読み取ることが可能です。また、この脆弱性により、/var/spool/smtpd/ディレクトリと同じファイルシステム上に別のユーザーが所有するファイルがある場合、そのファイルの内容全体を読み取ることができます。この問題は、多くのディストリビューションでは悪用できません。 Linux、/proc/sys/fs/protected_hardlinks の値が 1 に設定されている。

問題は不完全な除去の結果です проблем、2015年にQualysによって実施された監査中に表明されました。 攻撃者は、「PATH=.」変数を設定することにより、「_smtpq」グループの権限でコードを実行できます。 そして、makemap というスクリプトを現在のディレクトリに配置します (smtpctl ユーティリティは、パスを明示的に指定せずに makemap を実行します)。 攻撃者は、「_smtpq」グループへのアクセスを取得することで競合状態を引き起こし(オフライン ディレクトリに大きなファイルを作成し、SIGSTOP シグナルを送信する)、処理が完了する前にオフライン ディレクトリ内のファイルをハードウェアに置き換えることができます。内容を読み取る必要があるターゲット ファイルを指すシンボリックリンク。

Fedora 31 では、smtpctl プロセスに setgid smtpq フラグの代わりに setgid root フラグが装備されているため、この脆弱性によりすぐに root グループの権限を取得できることは注目に値します。 root グループへのアクセスを取得すると、/var/lib/sss/mc/passwd の内容を上書きし、システムへの完全な root アクセスを取得できます。

出所: オープンネット.ru

DDoS 保護機能を備えた信頼性の高いサイト用ホスティング、VPS VDS サーバーを購入する 🔥 DDoS攻撃対策付きの信頼性の高いウェブサイトホスティング、VPS/VDSサーバーを購入しましょう | ProHoster