Eximの重大な脆弱性の詳細が明らかに

公開済み 修正リリース 輸出税 4.92.2 クリティカルを排除することで 脆弱性 (CVE-2019-15846)、デフォルト設定では、root 権限を持つ攻撃者によるリモート コード実行につながる可能性があります。 この問題は、TLS サポートが有効になっている場合にのみ発生し、特別に設計されたクライアント証明書または変更された値を SNI に渡すことによって悪用されます。 脆弱性 特定された クアリス著。

問題 現在 文字列内の特殊文字をエスケープするためのハンドラー内 (string_interpret_escape() これは、文字列の末尾の「\」文字がヌル文字 (「\0」) の前に解釈され、エスケープされることが原因で発生します。 エスケープする場合、シーケンス '\' とそれに続く null 行末コードは XNUMX 文字として扱われ、ポインタは行の外側のデータに移動され、行の継続として扱われます。

string_interpret_escape() を呼び出すコードは実際のサイズに基づいてドレインのバッファを割り当て、公開されたポインタはバッファの境界外の領域になります。 したがって、入力文字列を処理しようとすると、割り当てられたバッファの境界外の領域からデータを読み取る状況が発生し、エスケープされていない文字列を書き込もうとすると、バッファの境界を超えて書き込む可能性があります。

デフォルト構成では、サーバーへの安全な接続を確立する際に、特別に設計されたデータを SNI に送信することにより、この脆弱性が悪用される可能性があります。 この問題は、クライアント証明書認証用に構成された構成のpeerdn値を変更することによって、または証明書をインポートするときに悪用される可能性もあります。 リリース時からSNIやpeerdn経由の攻撃が可能 輸出税 4.80ここでは、string_unprinting() 関数を使用して、peerdn と SNI の内容を出力解除しました。

エクスプロイト プロトタイプは、Glibc を備えた Linux システム上の i386 および amd64 アーキテクチャ上で実行される、SNI 経由の攻撃に備えて準備されています。 このエクスプロイトでは、ヒープ領域上のデータ オーバーレイが使用され、ログ ファイル名が保存されているメモリが上書きされます。 ファイル名は「/../../../../../../../../etc/passwd」に置き換えられます。 次に、送信者のアドレスを含む変数が上書きされ、最初にログに保存されます。これにより、新しいユーザーをシステムに追加できるようになります。

ディストリビューションによってリリースされた脆弱性修正を含むパッケージ更新 Debianの, Ubuntu, フェドーラ, SUSE/openSUSE и FreeBSDの。 RHEL と CentOS の問題 影響を受けない、Exim は通常のパッケージ リポジトリ ( EPEL обновление すでに 形成された、 しかし、今のところ 置かれていない パブリックリポジトリに)。 Eximコードでは、問題はワンライナーで修正されます パッチこれにより、バックスラッシュが行末にある場合、バックスラッシュのエスケープ効果が無効になります。

脆弱性をブロックする回避策として、TLS サポートを無効にするか、TLS サポートを追加できます。
ACL セクション「acl_smtp_mail」:

拒否条件 = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
拒否条件 = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

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

コメントを追加します