あの「Log4j」の脅威が再来か、それとも違うのか
オープンソースソフトウェアは世界中で幅広く使われている。脆弱性が見つかった場合、自社のソフトウェアにどのような影響があり、危険性がどの程度あるのかを見積もった上で対応しなければならない。「Apache Commons Text」で見つかった脆弱性はどのようなものなのだろうか。
Apache Software Foundationによれば、文字列処理関連のライブラリ「Apache Commons Text」に脆弱(ぜいじゃく)性が見つかった。Javaベースのロギングユーティリティー「Apache Log4j」の脆弱性も考えられたが、今回の脆弱性はどの程度のものなのか、不安になる。
脆弱性の影響範囲は?
今回発見された脆弱性は「CVE-2022-42889」として管理されている。Apache Commons Textの開発チームは、バージョン1.10.0へのアップグレードをユーザーに呼びかけている(注1)。
Apache Commons Textは文字列の差分計算やエスケープ、プレースホルダーの置換など、さまざまなテキスト操作に使用される低レベルのライブラリだ。発表によると、Apache Commons Textはテキスト中のプレースホルダーを「インターポレーター」で検索した値に置き換えることがある。このインターポレーターに問題がある。文字列置換機能を使用していると、攻撃者はインターポレーターを通じて不正なコードの実行やネットワークアクセスの引き金を引くことが可能だ。
Apache Software Foundationのセキュリティ対応プログラムマネジャー、アルヌート・エンゲレン氏によれば、バージョン1.10.0にアップデートすると、問題のあるインターポレーターがデフォルトで無効になる。
なお、今回の脆弱性はソフトウェア内部で信頼できない入力を適切にサニタイズせず、その上で「StringSubstitutor API」(Apache Commons Text API)を使っていた場合にのみ悪用される可能性がある。つまり、バージョン1.10.0へアップグレードして対応を完了するのではなく、信頼できない入力を適切に検証した後、サニタイズを実行することが望ましい。
Log4jとどちらが危険なのか
今回の脆弱性はGitHub Security Labメンバーのアルバロ・ムニョス氏が発見し、2022年3月9日、Apache Software Foundationに報告したものだ(注2)。Apacheのチームは同3月25日までに脆弱性の公開を認めた。
同5月27日までに、Apacheのチームはデフォルトでスクリプトのインターポレーションが無効になっていることを確認した。同6月29日には、Apache Commons Textのアップデートに着手していることを認め、同10月12日に1.10.0をリリースした。
この間、Apache Commons Textの脆弱性により、Log4jと似たセキュリティ危機が懸念されていた。だが、Sophosの研究者によれば、Log4jの脆弱性と比較することは正しくないという。Log4jはより広く使用されているJavaライブラリだ。
Sophosの脅威研究シニアマネジャー、クリストファー・バッド氏は次のように述べる。
「Log4jはジェネリックコードで悪用できるため危険だ。だが、今回の脆弱性はおそらく特定の標的型コードを必要とする。ほとんどのアプリケーションでは、ユーザーが提供したサニタイズされていない値をそのままライブラリにある脆弱な関数に渡すことはない。つまり、悪用されるリスクはないに等しいと言えるだろう」
Apache Software Foundationの関係者は、Apache Commons Textがどの程度広く使われているか、範囲について質問された際、「公共の利益のためにソフトウェアを制作している」ため、リリースがどのように使われ、他の製品に含まれるかは追跡していないと回答した。
JFrogの研究者は今回の脆弱性で危険があるJavaバイナリを検出するためのオープンソースツールを公開している(注3)。
© Industry Dive. All rights reserved.
関連記事
- 世界の対応で分かる、Log4jの脅威の深刻さ
サイバーセーフティ審査委員会によれば、Log4jは最も衝撃的なセキュリティ脅威の一つであり、将来にわたって影響が残るという。 - なぜUberは「5700万件情報漏えい」を6年間も隠したのか?
ライドシェア企業のUberにおいて、2016年に大規模なデータ漏えい事件が発生していたことが分かった。その実態と、事件が長年明るみに出なかった理由は。