Apache Log4j2 の脆弱性における Jenkins への影響


※ この記事はJenkins Community Blog 2021年12月10日 Wadeck FollonierDaniel BeckHervé Le MeurMark Waite投稿の記事「Apache Log4j 2 vulnerability CVE-2021-44228」(CC BY-SA 4.0)の翻訳です。


人気のある「ApacheLog4j2」ライブラリで重大なセキュリティの脆弱性が確認されています。この脆弱性はCVE-2021-44228として識別されます。

JenkinsのLog4j

Jenkinsセキュリティチームは、Log4jがJenkinsコアで使用されていないことを確認しました。JenkinsプラグインはLog4jを使用している可能性があります。スクリプトコンソールで次のGroovyスクリプトを実行することにより、Log4jがプラグインに含まれているかどうかを識別できます。

org.apache.logging.log4j.core.lookup.JndiLookup.class.protectionDomain.codeSource

これにより次のエラーが発生する場合、Log4jはインストールおよび有効化されたプラグインに含まれていません

groovy.lang.MissingPropertyException: No such property: org for class: Script1

それ以外の場合、スクリプトは、パスにプラグイン名を含むLog4jが見つかった場所を出力します。そのプラグインを無効にするかアンインストールしてから、Jenkinsを再起動してください。その後、再度スクリプトを実行し「No such property」というエラーが表示されるまでプラグインの無効、もしくはアンインストールを実施してください。

影響を受けるプラグインとそのステータスは、Jenkinsの課題管理システムに一覧表示されます。影響を受けることがわかっているコンポーネントについては、このJiraEpicを参照してください。

WebアプリケーションコンテナのLog4j

JenkinsをTomcat、Websphere、Glassfishな​​どの別のWebアプリケーションコンテナーでホストしている場合は、それらのコンテナーのプロバイダーに問い合わせて、脆弱なバージョンのLog4jを使用しているかどうかを検証してください。

JenkinsがDockerイメージ、ネイティブインストーラーパッケージ(deb、rpm、msi)、java -jar jenkins.warにて実行される場合、別のWebアプリケーションコンテナー内では実行されません。Jenkins内にバンドルされ、Log4jを含まない組み込みのJettyWebアプリケーションコンテナを使用しています。

JenkinsプロジェクトインフラストラクチャのLog4j

Jenkinsインフラストラクチャチームは現在、すべてのJenkinsプロジェクトインフラストラクチャで、脆弱なバージョンのLog4jライブラリが存在するかどうかを確認しています。この作業は進行中です。大事を取って、一部のサービスを一時的に無効にする場合があります。サービスのステータスは、ステータスページで確認できます

著者について

  • Wadeck Follonier
    Wadeck is the Jenkins security officer, leading the security team in improving Jenkins security. He likes to provide solutions that are both useful and easy to use.
    GitHub

  • Daniel Beck
    Daniel is a Jenkins core maintainer and member of the Jenkins security team. He was the inaugural Jenkins security officer from 2015 to 2021. He sometimes contributes to developer documentation and project infrastructure in his spare time.
    GitHub