Apache

オープンソースの Apache Commons Text ライブラリのリモート コード実行の脆弱性は、次の Log4Shell に発展するのではないかと心配する声もありますが、ほとんどのサイバーセキュリティ研究者は、それほど懸念していないようです。

Apache Commons Text は、開発者が入力された文字列ルックアップに基づいて文字列を変更、デコード、生成、およびエスケープできるようにする「 補間システム」を備えた人気のあるオープンソース Java ライブラリです。

たとえば、文字列ルックアップ${base64Decoder:SGVsbG9Xb3JsZCE=}を補間システムに渡すと、ライブラリはそれを base64 でデコードされた値 ‘HelloWorld!’ に変換します。

「Text4Shell」と呼ばれる Apache Commons Text の新しい CVE-2022-42889 脆弱性は、ライブラリのデフォルト設定で悪意のある入力を処理する際にコード実行を引き起こす可能性がある補間システムによる安全でないスクリプト評価によって引き起こされます。

「バージョン 1.5 から 1.9 まで、デフォルトのルックアップ インスタンスのセットには、任意のコードの実行やリモート サーバーとの接続を引き起こす可能性のあるインターポレーターが含まれていました」と、開発者は Apache メーリング リストで詳しく説明しています。

「影響を受けるバージョンで補間のデフォルトを使用するアプリケーションは、信頼されていない構成値が使用されている場合、RCE またはリモート サーバーとの意図しない接続に対して脆弱になる可能性があります。」

「問題のあるインターポレーターをデフォルトで無効にする Apache Commons Text 1.10.0 にアップグレードすることをお勧めします。」

この問題は、GitHub の脅威アナリストAlvaro Munozによって発見され、2022 年 3 月 9 日に Apache に報告されました。

ただし、オープンソース ライブラリの開発者が  7 か月かかり、ようやく補間を無効にするバージョン 1.10.0 の修正をリリースしました。

心配する必要があるか

脆弱なライブラリが広く展開されているため、また、この欠陥は 2018 年までさかのぼるバージョンに影響を与えるため、当初、 Log4Shell の脆弱性で見られたように、広範囲にわたる損害を引き起こす可能性があると懸念する人もいました。

しかし、 Rapid7のレポートはこれらの懸念を否定し、1.5 から 1.9 までのすべてのバージョンが脆弱であるとは限らず、その悪用の可能性は使用されている JDK バージョンに関連していると説明しました。

JDK の制限を回避するエクスプロイト パスとして JEXL エンジンを使用する概念実証 (PoC) エクスプロイトが更新されたとしても、まだあまり心配していなくてもよさそうです

脆弱なすべてのバージョンで動作する新しい PoC
脆弱なすべてのバージョンで動作する新しい PoC (@pwntester)

さらに、 Apache のセキュリティ チームは、この欠陥の範囲は Log4Shell ほど深刻ではないと述べており、文字列補間は文書化された機能であると説明しています。したがって、ライブラリを使用するアプリケーションが安全でない入力を検証せずに誤って渡す可能性は低くなります。

重大な重大度の欠陥は 7 か月間パッチが適用されず、エクスプロイトの試みにさらされていましたが、エクスプロイトがリリースされた後でも、実際に悪用されたという報告はありません。

将来、一部の攻撃者が CVE-2022-42889 を悪用する可能性がありますが、その範囲はおそらく限定されるでしょう。

現在、Apache Commons Text ライブラリを使用しているすべての開発者は、この欠陥を修正するために、できるだけ早くバージョン 1.10 以降にアップグレードすることをお勧めします。

セキュリティ研究者の Sean Wright は、一部の Java プロジェクトではすべてのライブラリ クラス ファイルを 1 つの jar に保持しているため、個別にスキャンする必要があると警告しています。

ショーン・ライトのツイート

Apache Commons Text ライブラリの脆弱なバージョンを見つけるのを支援するために、Silent Signal は、CVE-2022-42889 に対してパッチが適用されていないコンポーネントをアプリでスキャンできるBurp プラグインをリリースしました。