Jenkins プラグインの複数の脆弱性 (2022 年 2 月 15 日)

high Nessus プラグイン ID 162138

概要

リモートの Web サーバーホストで実行されているアプリケーションは、複数の脆弱性の影響を受けます。

説明

自己報告によるバージョン番号によると、リモート Web サーバー上で実行されているバージョンの Jenkins プラグインは、次の複数の脆弱性の影響を受けます。

- オンコントローラーの SCM チェックアウトを実行する複数のパイプライン関連プラグインが、一部のコンテキストで異なる SCM のチェックアウトのために同じワークスペースディレクトリを再利用します。パイプライン : Groovy プラグイン 2648.va9433432b33c 以前では、Pipelines のスクリプトファイル (通常は Jenkinsfile) を読み取る際に、異なる SCM に対して同じチェックアウトディレクトリを使用します。パイプライン:Shared Groovy Libraries 552.vd9cc05b8a2e1 以前は、Pipeline ライブラリの異なる SCM に対して同じチェックアウトディレクトリを使用します。パイプライン:Multibranch 706.vd43c65dec013 以前では、readTrusted ステップの異なる SCM に対して同じチェックアウトディレクトリを使用しています。これにより、アイテム / 構成権限を持つ攻撃者が、細工された SCM コンテンツを介してコントローラーで任意の OS コマンドを呼び出す可能性があります。影響を受けるプラグインが更新され、以下の問題が対処されました。パイプライン:Groovy Plugin 2656.vf7a_e7b_75a_457 以前では、Pipelines のスクリプトファイル (通常は Jenkinsfile) を読み取る際に、異なる SCM に対して同じチェックアウトディレクトリを使用します。パイプライン:Shared Groovy Libraries 561.va_ce0de3c2d69 は、Pipeline ライブラリに対して SCM ごとに異なるチェックアウトディレクトリを使用します。パイプライン:Multibranch 707.v71c3f0a_6ccdb_ は、readTrusted ステップに対して SCM ごとに異なるチェックアウトディレクトリを使用します。(CVE-2022-25173、CVE-2022-25174、CVE-2022-25175)

- 複数のパイプライン関連プラグインがシンボリックリンクに従うか、パス名を制限しないため、任意のファイル読み取りの脆弱性が発生します。パイプライン:Groovy Plugin 2648.va9433432b33c 以前は、パイプライン用スクリプトファイル (通常は Jenkinsfile) を読み込む際に、構成された SCM のチェックアウトディレクトリ外の場所へのシンボリックリンクに従います (当初は SECURITY-2595 として報告されていました)。パイプライン:Shared Groovy Libraries 552.vd9cc05b8a2e1 以前は、libraryResource ステップを使用してファイルを読み取る際に、予想される Pipeline ライブラリ外の場所へのシンボリックリンクをたどります (最初は SECURITY-2479 として報告されていました)。
パイプライン:Shared Groovy Libraries 552.vd9cc05b8a2e1 以前は、libraryResource ステップに渡されるリソースの名前を制限しません (最初は SECURITY-2476 として報告されていました)。パイプライン:Multibranch 706.vd43c65dec013 以前は、readTrusted ステップを使用してファイルを読み取る際に、構成された SCM のチェックアウトディレクトリ外の場所へのシンボリックリンクに従います (最初は SECURITY-2491 として報告されていました)。
これにより、攻撃者は、Jenkins コントローラーファイルシステム上の任意のファイルを読み取るようにパイプラインを構成できます。影響を受けるプラグインが更新され、以下の問題が対処されました:パイプライン:Groovy Plugin 2656.vf7a_e7b_75a_457 は、Pipelines のスクリプトファイルが構成済み SCM のチェックアウトディレクトリ内にあることをチェックします。パイプライン:Shared Groovy Libraries 561.va_ce0de3c2d69 は、libraryResource ステップによって取得されたリソースが、想定される Pipeline ライブラリ内に含まれていることをチェックします。パイプライン:
Multibranch 707.v71c3f0a_6ccdb_ は、readTrusted によって取得されたファイルが、構成された SCM のチェックアウトディレクトリ内にあることをチェックします。(CVE-2022-25176、CVE-2022-25177、CVE-2022-25178、CVE-2022-25179)

- パイプライン : Groovy Plugin 2648.va9433432b33c 以前では、元のビルドのパスワードパラメーターが再生ビルドに含まれています。これにより、実行 / 再生権限を持つ攻撃者が、パイプラインの以前のビルドに渡されたパスワードパラメーターの値を取得する可能性があります。パイプライン:Groovy Plugin 2656.vf7a_e7b_75a_457 では、パスワードパラメーターを含むビルドを再生できません。(CVE-2022-25180)

- パイプライン : 非推奨の Groovy Libraries Plugin 552.vd9cc05b8a2e1 以前は、使用されている SCM およびライブラリ構成のソースに関係なく、同じ名前の Pipeline ライブラリのすべてのチェックアウトに同じワークスペースディレクトリを使用します。これにより、グローバルパイプラインライブラリがすでに存在する場合、アイテム / 構成権限を持つ攻撃者が細工された SCM コンテンツを介して Jenkins コントローラー JVM のコンテキストで任意のコードを実行する可能性があります。パイプライン:非推奨の Groovy Libraries Plugin 561.va_ce0de3c2d69 は、Pipeline ライブラリの SCM に対して異なるチェックアウトディレクトリを使用します。(CVE-2022-25181)

- パイプライン : 非推奨の Groovy Libraries Plugin 552.vd9cc05b8a2e1 以前では、Pipeline ライブラリの名前を使用して、正規化やサニタイズなしでディレクトリを作成しています。これにより、グローバル Pipeline ライブラリがすでに存在する場合、アイテム / 構成権限を持つ攻撃者が、特別に細工されたライブラリ名を使用して Jenkins コントローラー JVM のコンテキストで任意のコードを実行する可能性があります。パイプライン:非推奨の Groovy Libraries Plugin 561.va_ce0de3c2d69 は、ライブラリディレクトリを作成するときに Pipeline ライブラリの名前をサニタイズします。(CVE-2022-25182)

- パイプライン : 非推奨の Groovy Libraries Plugin 552.vd9cc05b8a2e1 以前では、Pipeline ライブラリの名前を使用して、サニタイズなしでキャッシュディレクトリを作成しています。これにより、キャッシングを使用するために構成されたグローバル Pipeline ライブラリがすでに存在する場合、アイテム / 構成権限を持つ攻撃者が、特別に細工されたライブラリ名を使用して Jenkins コントローラー JVM のコンテキストで任意のコードを実行する可能性があります。パイプライン:非推奨の Groovy Libraries Plugin 561.va_ce0de3c2d69 は、ライブラリキャッシュディレクトリを作成するときに Pipeline ライブラリの名前をサニタイズします。(CVE-2022-25183)

- パイプライン : Build Step Plugin 2.15 以前では、Pipeline Snippet Generator を使用してパイプラインスクリプトを生成する際に、パスワードパラメーターのデフォルト値が明らかになります。これにより、アイテム / 読み取り権限を持つ攻撃者が、デフォルトのパスワードパラメーター値をジョブから取得する可能性があります。パイプライン:Build Step Plugin 2.15.1 は、生成されたパイプラインスクリプトのパスワードパラメーターを編集します。(CVE-2022-25184)

- Generic Webhook Trigger Plugin 1.81 以前では、webhook のビルド原因を回避していません。これにより、攻撃者が webhook を使用してビルドをトリガーできる悪用可能な蓄積型クロスサイトスクリプティング (XSS) の脆弱性が発生します。Generic Webhook Trigger Plugin 1.82 は、UI に表示される際にビルド原因を回避します。注 : この脆弱性は、Jenkins 2.314 以前、LTS 2.303.1 以前でのみ悪用可能です。
LTS アップグレードガイドを参照してください。(CVE-2022-25185)

- HashiCorp Vault プラグイン 3.8.0 およびそれ以前は、エージェントプロセスが Vault シークレットを取得してエージェントで使用できるようにする機能を実装しています。これにより、攻撃者はエージェントプロセスを制御して、攻撃者が指定したパスとキーの Vault シークレットを取得できます。エージェントプロセスが Vault シークレットをキャプチャできる機能は、HashiCorp Vault Plugin 336.v182c0fbaaeb7 で使用できなくなりました。(CVE-2022-25186)

- Support Core Plugin には、サポートバンドルの機密情報を編集する機能があります。
Support Core Plugin 2.79 およびそれ以前は、サポートバンドルの一部の機密情報を編集しません。
この機密情報は、バンドルへのアクセス権があるユーザーなら誰でも閲覧できます。Support Core Plugin 2.79.1 は、関連する値が編集されるキーワードのリストを追加します。このリストは $JENKINS_HOME/support にある security-stop-words.txt ファイルに保存されており、編集する必要がある値のキーワードをさらに追加して修正できます。(CVE-2022-25187)

- Fortify Plugin 20.2.34 およびそれ以前では、ビルドディレクトリ内のファイルへの書き込みに使用される Pipeline ステップの appName および appVersion パラメーターをサニタイズしません。これにより、Item / Configure 権限を持つ攻撃者が、攻撃者が制御できないコンテンツで Jenkins コントローラーファイルシステムの .xml ファイルを書き込みまたは上書きする可能性があります。Fortify Plugin 20.2.35 は、結果のファイル名を決定する際に、Pipeline ステップの appName および appVersion パラメーターをサニタイズします。(CVE-2022-25188)

- カスタムチェックボックスパラメータープラグイン 1.1 以前では、カスタムチェックボックスパラメーターのパラメーター名がエスケープされません。これにより、Item / Configure 権限権限を持つ攻撃者が悪用可能な蓄積型クロスサイトスクリプティング (XSS) の脆弱性が発生します。カスタムチェックボックスパラメータープラグイン 1.2 では、カスタムチェックボックスパラメーターのパラメーター名をエスケープします。(CVE-2022-25189)

- Conjur Secrets Plugin 1.0.11 以前は、HTTP エンドポイントで権限チェックを実行しません。これにより、Overall / Read 権限を持つ攻撃者が、Jenkins に蓄積された認証情報 ID を列挙する可能性があります。これらを攻撃の一部として利用し、別の脆弱性を利用して認証情報を取得する可能性があります。Conjur Secrets Plugin 1.0.12 での認証情報 ID の列挙には、Overall / Administer 権限が必要です。
(CVE-2022-25190)

- Agent Server Parameter Plugin 1.0 以前では、エージェントサーバーパラメーターのパラメーター名がエスケープされません。
これにより、Item / Configure 権限権限を持つ攻撃者が悪用可能な蓄積型クロスサイトスクリプティング (XSS) の脆弱性が発生します。- Agent Server Parameter Plugin 1.1 では、エージェントサーバーパラメーターのパラメーター名がエスケープされません。(CVE-2022-25191)

- Snow Commander プラグイン 2.0 以前では、フォーム検証を実装するメソッドで権限チェックを実行しません。これにより、Overall / Read 権限を持つ攻撃者が、他の方法によって取得した攻撃者指定の認証情報 ID を使って攻撃者指定の Web サーバーに接続し、Jenkins に保存されている認証情報を取得する可能性があります。さらに、これらのフォーム検証メソッドは POST リクエストを必要としないため、クロスサイトリクエスト偽造 (CSRF) の脆弱性が発生します。Snow Commander プラグイン 2.0 は、影響を受けるフォーム検証メソッドに対する POST リクエストおよび Overall / Administer 権限を必要とします。(CVE-2022-25192、CVE-2022-25193)

- autonomiq Plugin 1.15 以前は、HTTP エンドポイントで権限チェックを実行しません。これにより、Overall / Read 権限を持つ攻撃者が、攻撃者が指定したユーザー名とパスワードを使用して、攻撃者が指定した URL に接続する可能性があります。さらに、この HTTP エンドポイントは POST リクエストを必要としないため、クロスサイトリクエスト偽造 (CSRF) の脆弱性が発生します。autonomiq プラグイン 1.16 には、この HTTP エンドポイントに対する POST リクエストおよび Overall / Read 権限が必要です。(CVE-2022-25194、CVE-2022-25195)

- GitLab Authentication Plugin 1.13 およびそれ以前では、認証プロセスが開始すると HTTP Referer ヘッダーが URL クエリパラメーターの一部として記録され、ユーザーがログインを完了したときにその URL にユーザーがリダイレクトされます。これにより、Jenkins にアクセスできる攻撃者が、ログイン後にユーザーを攻撃者が指定した URL にリダイレクトする URL を細工する可能性があります。注 : この問題は、SECURITY-796 の修正が不完全なために発生します。このアドバイザリの公開時点では、修正はありません。(CVE-2022-25196)

- HashiCorp Vault プラグイン 336.v182c0fbaaeb7 以前は、エージェントプロセスが Jenkins コントローラーファイルシステム上の任意のファイルを読み取ることができる機能を実装しています。これにより、攻撃者は、Jenkins コントローラーファイルシステム上の任意のファイルを読み取るようにエージェントプロセスを制御できます。注この脆弱性は、Jenkins 2.318 以前、LTS 2.303.2 以前でのみ悪用可能です。LTS アップグレードガイドを参照してください。このアドバイザリの公開時点では、修正はありません。 (CVE-2022-25197)

- SCP publisher Plugin 1.8 以前では、フォーム検証を実装するメソッドで権限チェックを実行しません。これにより、Overall / Read 権限を持つ攻撃者が、攻撃者が指定したユーザー名とパスワードを使用して、攻撃者が指定した SSH サーバーに接続する可能性があります。さらに、このフォーム検証メソッドは POST リクエストを必要としないため、クロスサイトリクエスト偽造 (CSRF) の脆弱性が発生します。このアドバイザリの公開時点では、修正はありません。(CVE-2022-25198、CVE-2022-25199)

- Checkmarx Plugin 2022.1.2 以前では、複数の HTTP エンドポイントで権限チェックを実行しません。これにより、Overall / Read 権限を持つ攻撃者が、他の方法によって取得した攻撃者指定の認証情報 ID を使って攻撃者指定の Web サーバーに接続し、Jenkins に保存されている認証情報を取得する可能性があります。さらに、これらの HTTP エンドポイントは POST リクエストを必要としないため、クロスサイトリクエスト偽造 (CSRF) の脆弱性が発生します。このアドバイザリの公開時点では、修正はありません。
(CVE-2022-25200、CVE-2022-25201)

- Promoted Builds (Simple) Plugin 1.9 以前は、カスタムプロモーションレベルの名前をエスケープしません。これにより、Overall / Administer 権限を持つ攻撃者が悪用可能な蓄積型クロスサイトスクリプティング (XSS) の脆弱性が発生します。このアドバイザリの公開時点では、修正はありません。 (CVE-2022-25202)

- Team Views Plugin 0.9.0 以前では、チーム名をエスケープしません。これにより、Overall / Read 権限を持つ攻撃者が悪用可能な蓄積型クロスサイトスクリプティング (XSS) の脆弱性が発生します。このアドバイザリの公開時点では、修正はありません。 (CVE-2022-25203)

- Doktor Plugin 0.4.1 およびそれ以前は、エージェントプロセスがコントローラー上のファイルを Markdown または Asciidoc としてレンダリングできる機能を実装しています。さらに、エラーメッセージにより、攻撃者はエージェントプロセスを制御して、特定の名前のファイルが存在するかどうかを判断できます。このアドバイザリの公開時点では、修正はありません。 (CVE-2022-25204)

- dbCharts Plugin 0.5.2 以前では、フォーム検証を実装するメソッドで権限チェックを実行しません。これにより、Overall / Read 権限を持つ攻撃者が、攻撃者が指定した認証情報を使用して、JDBC を介して攻撃者が指定したデータベースに接続する可能性があります。さらに、このメソッドでは、エラーメッセージを通じて、攻撃者が Jenkins コントローラーのクラスパスでクラスが利用可能かどうかを判断できます。
さらに、このフォーム検証メソッドは POST リクエストを必要としないため、クロスサイトリクエスト偽造 (CSRF) の脆弱性が発生します。このアドバイザリの公開時点では、修正はありません。
(CVE-2022-25205、CVE-2022-25206)

- Chef Sinatra Plugin 1.20 以前では、フォーム検証を実装するメソッドで権限チェックを実行しません。これにより、Overall / Read 権限を持つ攻撃者が、攻撃者が制御する URL に Jenkins に HTTP リクエストを送信させ、応答を XML として解析させる可能性があります。プラグインは、XML 外部エンティティ (XXE) 攻撃を防ぐために XML パーサーを構成しないため、攻撃者は、Jenkins コントローラーまたはサーバー側のリクエスト偽造から秘密を抽出するために、外部エンティティを使用する細工された XML 応答を Jenkins に解析させることができます。さらに、このフォーム検証メソッドは POST リクエストを必要としないため、クロスサイトリクエスト偽造 (CSRF) の脆弱性が発生します。このアドバイザリの公開時点では、修正はありません。
(CVE-2022-25207、CVE-2022-25208、CVE-2022-25209)

- Convertigo Mobile Platform Plugin 1.1 以前では、静的フィールドを使用してジョブ構成情報を保存しています。これにより、Item / Configure 権限を持つ攻撃者が、構成されるジョブのパスワードをキャプチャする可能性があります。このアドバイザリの公開時点では、修正はありません。 (CVE-2022-25210)

- SWAMP Plugin 1.2.6 以前では、フォーム検証を実装するメソッドで権限チェックを実行しません。これにより、Overall / Read 権限を持つ攻撃者が、他の方法によって取得した攻撃者指定の認証情報 ID を使って攻撃者指定の URL に接続し、Jenkins に保存されている認証情報を取得する可能性があります。さらに、このフォーム検証メソッドは POST リクエストを必要としないため、クロスサイトリクエスト偽造 (CSRF) の脆弱性が発生します。このアドバイザリの公開時点では、修正はありません。
(CVE-2022-25211、CVE-2022-25212)

Nessus はこれらの問題をテストしておらず、代わりにアプリケーションの自己報告されたバージョン番号にのみ依存しています。

ソリューション

Jenkins プラグインを次のバージョンに更新してください。
- Agent Server Parameter Plugin のバージョン 1.1 以降
- autonomiq Plugin のバージョン 1.16 以降
- Conjur Secrets Plugin のバージョン 1.0.12 以降
- Custom Checkbox Parameter Plugin のバージョン 1.2 以降
- Fortify Plugin のバージョン 20.2.35 以降
- Generic Webhook Trigger Plugin のバージョン 1.82 以降
- HashiCorp Vault Plugin のバージョン 336 以降
- パイプライン : Build Step Plugin のバージョン 2.15.1 以降
- パイプライン : 非推奨の Groovy Libraries Plugin のバージョン 561 以降
- パイプライン : Groovy Plugin のバージョン 2656 以降
- パイプライン : Multibranch Plugin のバージョン 707 以降
- Snow Commander Plugin のバージョン 2.0 以降
- Support Core Plugin のバージョン 2.79.1 以降

詳細については、ベンダーアドバイザリを参照してください。

参考資料

https://jenkins.io/security/advisory/2022-02-15

プラグインの詳細

深刻度: High

ID: 162138

ファイル名: jenkins_security_advisory_2022-02-15_plugins.nasl

バージョン: 1.4

タイプ: combined

エージェント: windows, macosx, unix

ファミリー: CGI abuses

公開日: 2022/6/13

更新日: 2023/7/28

サポートされているセンサー: Nessus Agent, Nessus

リスク情報

VPR

リスクファクター: Medium

スコア: 5.9

CVSS v2

リスクファクター: Medium

Base Score: 6.8

Temporal Score: 5

ベクトル: CVSS2#AV:N/AC:M/Au:N/C:P/I:P/A:P

CVSS スコアのソース: CVE-2022-25212

CVSS v3

リスクファクター: High

Base Score: 8.8

Temporal Score: 7.7

ベクトル: CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

現状ベクトル: CVSS:3.0/E:U/RL:O/RC:C

脆弱性情報

CPE: cpe:/a:cloudbees:jenkins, cpe:/a:jenkins:jenkins

必要な KB アイテム: installed_sw/Jenkins

エクスプロイトの容易さ: No known exploits are available

パッチ公開日: 2022/2/15

脆弱性公開日: 2022/2/15

参照情報

CVE: CVE-2022-25173, CVE-2022-25174, CVE-2022-25175, CVE-2022-25176, CVE-2022-25177, CVE-2022-25178, CVE-2022-25179, CVE-2022-25180, CVE-2022-25181, CVE-2022-25182, CVE-2022-25183, CVE-2022-25184, CVE-2022-25185, CVE-2022-25186, CVE-2022-25187, CVE-2022-25188, CVE-2022-25189, CVE-2022-25190, CVE-2022-25191, CVE-2022-25192, CVE-2022-25193, CVE-2022-25194, CVE-2022-25195, CVE-2022-25196, CVE-2022-25197, CVE-2022-25198, CVE-2022-25199, CVE-2022-25200, CVE-2022-25201, CVE-2022-25202, CVE-2022-25203, CVE-2022-25204, CVE-2022-25205, CVE-2022-25206, CVE-2022-25207, CVE-2022-25208, CVE-2022-25209, CVE-2022-25210, CVE-2022-25211, CVE-2022-25212