Apache httpd の別の脆弱性により、サイトのルート ディレクトリ外へのアクセスが可能になります

Apache http サーバーに対する新しい攻撃ベクトルが発見されました。この攻撃ベクトルはアップデート 2.4.50 でも修正されておらず、サイトのルート ディレクトリの外側の領域からファイルにアクセスできるようになっています。 さらに、研究者らは、特定の非標準設定が存在する場合でも、システム ファイルを読み取るだけでなく、サーバー上でコードをリモートで実行できる方法を発見しました。 この問題はリリース 2.4.49 および 2.4.50 でのみ発生し、それ以前のバージョンは影響を受けません。 新しい脆弱性を排除するために、Apache httpd 2.4.51 がすぐにリリースされました。

新しい問題 (CVE-2021-42013) は本質的に、2021 の元の脆弱性 (CVE-41773-2.4.49) と完全に似ていますが、唯一の違いは「..」文字のエンコーディングが異なることです。 特に、リリース 2.4.50 では、シーケンス "%2e" を使用してポイントをエンコードする機能はブロックされましたが、二重エンコードの可能性は見逃されました。シーケンス "%%32%65" を指定すると、サーバーはそれをデコードしました。 「%2e」に入力してから「.」に入力します。つまり、 前のディレクトリに移動する「../」文字は「.%%32%65/」としてエンコードできます。

コード実行による脆弱性の悪用については、mod_cgi が有効であり、CGI スクリプトの実行が許可されているベース パスが使用されている場合 (たとえば、ScriptAlias ディレクティブが有効になっている場合や、オプションディレクティブ)。 攻撃を成功させるための必須要件は、/bin などの実行可能ファイルのあるディレクトリへのアクセス、または Apache 設定のファイル システム ルート「/」へのアクセスを明示的に提供することです。 通常、このようなアクセスは許可されないため、コード実行攻撃は実際のシステムにはほとんど適用されません。

同時に、http サーバーが実行されているユーザーが読み取り可能な、任意のシステム ファイルの内容や Web スクリプトのソース テキストを取得する攻撃も依然として存在します。 このような攻撃を実行するには、サイト上に「cgi-bin」などの「Alias」または「ScriptAlias」ディレクティブ (DocumentRoot では十分ではありません) を使用して構成されたディレクトリがあれば十分です。

サーバー上で「id」ユーティリティを実行できるようにするエクスプロイトの例:curl 'http://192.168.0.1/cgi-bin/.%%32%65/.%%32%65/.%% 32%65/.%% 32%65/.%%32%65/bin/sh' -data 'echo Content-Type: text/plain; エコー; id' uid=1(デーモン) gid=1(デーモン) groups=1(デーモン)

/etc/passwd の内容と Web スクリプトの 192.168.0.1 つを表示できるようにするエクスプロイトの例 (スクリプト コードを出力するには、スクリプトの実行が有効になっていない「Alias」ディレクティブで定義されたディレクトリを指定する必要があります)ベースディレクトリとして):curl 'http://32 .65/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.% %192.168.0.1%32/etc/passwd'curl'http://65/aliaseddir/.%%32%65/.%%32%65/.%%32%65/.%%32%65/。 %%2%XNUMX/usr/local/apacheXNUMX/cgi -bin/test.cgi'

この問題は主に、FreeBSD のポートだけでなく、Fedora、Arch Linux、Gentoo などの継続的に更新されるディストリビューションに影響します。 保守的なサーバー ディストリビューションである Debian、RHEL、Ubuntu、SUSE の安定版ブランチにあるパッケージは、この脆弱性の影響を受けません。 「すべて拒否する必要がある」設定を使用してディレクトリへのアクセスが明示的に拒否されている場合、この問題は発生しません。

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

コメントを追加します