Googleのオープンソースチームによると、最大のJavaパッケージリポジトリであるMaven Centralをスキャンした結果、35,863個のJavaパッケージがApache Log4jライブラリの脆弱なバージョンを使用していることが判明しました。
最近公開されたlog4jの脆弱性は、Maven Centralリポジトリ(最も重要なJavaパッケージリポジトリ)の8%以上に相当する35,000以上のJavaパッケージに影響を与え、その影響はソフトウェア業界全体に及んでいます。
この脆弱性はログライブラリlog4jが公開している安全でないJNDIルックアップ機能を悪用して、攻撃者がリモートでコード実行を行うことができます。この悪用できる機能は、同ライブラリの多くのバージョンでデフォルトで有効になっていました。
この中には、オリジナルのLog4Shellエクスプロイト(CVE-2021-44228)やLog4Shellパッチで発見された2つ目のリモートコード実行バグ(CVE-2021-45046)に対して脆弱なLog4jバージョンを使用しているJavaパッケージが含まれています。
Google Open Source Insights TeamのメンバーであるJames Wetter氏とNicky Ringland氏はレポートの中で、通常Javaの重大なセキュリティ上の脆弱性が発見された場合、その影響はMaven Centralインデックスのわずか2%にとどまる傾向があると述べています。
しかし、Log4Shellに脆弱な35,000個のJavaパッケージは、Maven Central全体の約44万個のうち約8%を占めており、その割合を2人は「膨大」の一言で表現しています。
Log4Shellへのパッチ適用が最初の難関に
しかし、この脆弱性が公開されて以来、コミュニティは積極的に反応し、当初脆弱性が見つかった35,863個のパッケージのうち4,620個をすでに修正したとのことです。
この数字は、脆弱性のあるパッケージ全体の13%に相当します。
しかし、少なくとも今後数年間は、Log4Shellの問題が完全に修正されることはないと予想しています。
その主な理由は、Log4jが必ずしもJavaパッケージ内の直接的な依存関係として含まれているわけではなく、他の依存関係の依存関係でもあるからです(間接的な依存関係とも呼ばれます)。
このような状況では、脆弱性のあるJavaパッケージのソフトウェア保守者は、自分のアプリをアップデートする前に他の開発者を待たなければならず、場合によってはこのプロセスが数週間から数ヶ月も長引くことになります。
Googleによると、Log4jが直接の依存関係にあるのは全35,000のライブラリのうち7,000のパッケージに限られており、多くのJava開発者は安全な代替品に更新されていない間接的な依存関係を切り替えなければならない可能性が高いとのことです。
現在、JavaパッケージはLog4j v2.16.0を使用していれば安全とみなされます。
Comments