Jenkins プラグインの複数の脆弱性 (2023 年 1 月 24 日)

critical Nessus プラグイン ID 171929

概要

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

説明

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

- 重要度高 スクリプトセキュリティプラグインは、一般に安全に実行できる Pipeline を含むスクリプトを、権限の低いユーザーが定義できるサンドボックス機能を提供します。サンドボックス化されたスクリプト内で定義されたコードへの呼び出しが傍受され、呼び出しを許可するかどうかを判断するためにさまざまな許可リストがチェックされます。スクリプトセキュリティプラグイン 1228.vd93135a_2fb_25 以前では、マップコンストラクターの呼び出しがサンドボックスで傍受されない場合、プロパティの割り当てが Groovy 言語ランタイムによって暗黙的に実行されていました。この脆弱性により、パイプラインを含むサンドボックス化されたスクリプトを定義および実行する権限を持つ攻撃者が、サンドボックス保護をバイパスし、Jenkins コントローラー JVM のコンテキストで任意のコードを実行する可能性があります。
スクリプトセキュリティプラグイン 1229.v4880b_b_e905a_6 は、マップコンストラクターを呼び出す際にプロパティ割り当てを傍受します。この修正の一部として、マップコンストラクターは新しいキーを使用するサンドボックスでのみ呼び出される可能性があります。
Groovy キャストを使用してマップコンストラクターを呼び出そうとすると、無条件に失敗します。たとえば、[key: value] as MyClass または MyClass mc = [key: value] のようなコードは、新しい MyClass(key:
value) に置き換える必要があります。(CVE-2023-24422)

- 重要度中 Gerrit Trigger プラグイン 2.38.0 は、複数の HTTP エンドポイントに対して POST リクエストを必要としないため、クロスサイトリクエスト偽造 (CSRF) の脆弱性が発生します。この脆弱性により、攻撃者は Gerrit によってトリガーされた以前のビルドを再構築できます。Gerrit Trigger プラグイン 2.38.1 は、影響を受ける HTTP エンドポイントに対する POST リクエストを必要とします。(CVE-2023-24423)

- 重要度高 OpenId Connect Authentication プラグイン 2.4 およびそれ以前では、ログイン時に既存のセッションが無効化されません。これにより、攻撃者がソーシャルエンジニアリング技術を使用して、Jenkinsへの管理者アクセス権を取得する可能性があります。
OpenId Connect Authentication プラグイン 2.5 では、ログイン時に既存のセッションが無効化されます。(CVE-2023-24424)

- 重要度中 Kubernetes Credentials Provider プラグイン 1.208.v128ee9800c04 およびそれ以前は、Kubernetes 認証情報検索に適切なコンテキストを設定しないため、グローバル構成用に予約されたシステムスコープの認証情報を使用できます。これにより、アイテム / 構成権限を持つ攻撃者が、資格のない Kubernetes 認証情報にアクセスしてキャプチャする可能性があります。Kubernetes Credentials Provider プラグイン 1.209.v862c6e5fb_1ef は、Kubernetes 認証情報検索の適切なコンテキストを定義します。
(CVE-2023-24425)

- 重要度高 Azure AD Plugin 303.va_91ef20ee49f およびそれ以前では、ログイン時に既存のセッションが無効化されません。
これにより、攻撃者がソーシャルエンジニアリング技術を使用して、Jenkinsへの管理者アクセス権を取得する可能性があります。Azure AD Plugin 306.va_7083923fd50 は、ログイン時に既存のセッションを無効にします。(CVE-2023-24426)

- 重要度高 Bitbucket OAuth プラグイン 0.12 およびそれ以前では、ログイン時に既存のセッションが無効化されません。これにより、攻撃者がソーシャルエンジニアリング技術を使用して、Jenkinsへの管理者アクセス権を取得する可能性があります。OpenId OAuth プラグイン 0.13 では、ログイン時に既存のセッションが無効化されます。(CVE-2023-24427)

- 重要度中 Bitbucket OAuth プラグイン 0.12 以前では、OAuthフローに状態パラメーターを実装していません。これは、各認証リクエストに関連付けられた、推測できない一意の値です。この脆弱性により、攻撃者がユーザーを騙して、攻撃者のアカウントにログインさせる可能性があります。Bitbucket OAuth プラグイン 0.13 は、OAuth フローに状態パラメーターを実装しています。(CVE-2023-24428)

- 重要度高 Semantic Versioning プラグインは、特定のファイルを XML として処理するコントローラー / エージェントメッセージを定義し、その XML パーサーは XML 外部エンティティ (XXE) 攻撃を防ぐように構成されていません。Semantic Versioning プラグイン 1.14 以前では、コントローラー / エージェントメッセージの実行をエージェントに制限せず、解析可能なファイルパスに関する制限を実装していません。これにより、エージェントプロセスを制御できる攻撃者が、Jenkins コントローラーまたはサーバー側のリクエスト偽造から秘密を抽出するために外部エンティティを使用する細工されたファイルを Jenkins に解析させる可能性があります。これは、SECURITY-2124 に対する修正が不完全だったため生じています。この脆弱性は、Jenkins 2.318 以前、LTS 2.303.2 以前でのみ悪用可能です。LTS アップグレードガイドを参照してください。Semantic Versioning プラグイン 1.15 では、影響を受けるコントローラ / エージェントのメッセージを、コントローラーで実行するためにエージェントが送信することはできません。(CVE-2023-24429)

- 重要度中 Semantic Versioning プラグイン 1.14 以前は、XML 外部エンティティ (XXE) 攻撃を防ぐための XML パーサーを構成していません。これにより、「Determine Semantic Version」ビルドステップのバージョンファイルのコンテンツを制御できる攻撃者が、Jenkins エージェントまたはサーバー側のリクエスト偽造から秘密を抽出するために外部エンティティを使用する細工されたファイルをエージェントプロセスに解析させる可能性があります。Jenkins エージェントプロセスは通常、入力 (ソースコード、ビルドスクリプトなど) が外部から制御されるビルドツールを実行するため、この脆弱性は非常に狭い状況でのみ実際に影響を与えます。攻撃者が XML ファイルを制御できるが、ビルドステップ、Jenkinsfiles、エージェントで実行されるテストコードなどを変更できない場合。Semantic Versioning プラグイン 1.15 は、XML パーサーの外部エンティティ解決を無効にします。(CVE-2023-24430)

- 重要度中 Orka by MacStadium プラグイン 1.31 以前では、複数の HTTP エンドポイントで権限チェックを実行しません。これにより、Overall / Read 権限を持つ攻撃者が、Jenkins に蓄積された認証情報 ID を列挙する可能性があります。これらを攻撃の一部として利用し、別の脆弱性を利用して認証情報を取得する可能性があります。Orka by MacStadium プラグイン 1.32 での認証情報 ID の列挙には、Overall / Administer 権限が必要です。(CVE-2023-24431)

- 重要度中 Orka by MacStadium プラグイン 1.31 以前では、複数の HTTP エンドポイントで権限チェックを実行しません。これにより、Overall / Read 権限を持つ攻撃者が、他の方法によって取得した攻撃者指定の認証情報 ID を使って攻撃者指定の HTTP サーバーに接続し、Jenkins に保存されている認証情報を取得する可能性があります。さらに、これらの HTTP エンドポイントは POST リクエストを必要としないため、クロスサイトリクエスト偽造 (CSRF) の脆弱性が発生します。Orka by MacStadium プラグイン 1.32 は、影響を受ける HTTP エンドポイントに対する POST リクエストおよび全体 / 管理権限が必要です。(CVE-2023-24432、CVE-2023-24433)

- 重要度中 GitHub Pull Request Builder プラグイン 1.42.2 以前は、HTTP エンドポイントで権限チェックを実行しません。これにより、Overall / Read 権限を持つ攻撃者が、Jenkins に蓄積された認証情報 ID を列挙する可能性があります。これらを攻撃の一部として利用し、別の脆弱性を利用して認証情報を取得する可能性があります。このアドバイザリの公開時点では、修正はありません。弊社がこれを発表する理由をご覧ください。
(CVE-2023-24436)

- 重要度中 GitHub Pull Request Builder プラグイン 1.42.2 以前では、フォーム検証を実装するメソッドで権限チェックを実行しません。これにより、Overall / Read 権限を持つ攻撃者が、他の方法によって取得した攻撃者指定の認証情報 ID を使って攻撃者指定の URL に接続し、Jenkins に保存されている認証情報を取得する可能性があります。さらに、これらのフォーム検証メソッドは POST リクエストを必要としないため、クロスサイトリクエスト偽造 (CSRF) の脆弱性が発生します。このアドバイザリの公開時点では、修正はありません。弊社がこれを発表する理由をご覧ください。(CVE-2023-24434、CVE-2023-24435)

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

- 重要度低 JIRA Pipeline Steps Plugin 2.0.165.v8846cf59f3db 以前では、Jenkins コントローラーのグローバル構成ファイル org.thoughtslive.jenkins.plugins.jira.JiraStepsConfig.xml に構成の一部として秘密鍵が暗号化されずに保存されます。この鍵は、Jenkins コントローラーファイルシステムへのアクセス権を持つユーザーが表示できます。また、グローバル構成フォームは、API キーをマスクしないため、攻撃者がこれを観察およびキャプチャする可能性が高くなります。このアドバイザリの公開時点では、修正はありません。弊社がこれを発表する理由をご覧ください。(CVE-2023-24439、CVE-2023-24440)

- 重要度中 MSTest プラグイン 1.0.0 以前は、XML 外部エンティティ (XXE) 攻撃を防ぐための XML パーサーを構成していません。これにより、「Publish MSTest test result report」ポストビルドステップのレポートファイルのコンテンツを制御できる攻撃者が、Jenkins エージェントまたはサーバー側のリクエスト偽造から秘密を抽出するために外部エンティティを使用する細工されたファイルをエージェントプロセスに解析させる可能性があります。Jenkins エージェントプロセスは通常、入力 (ソースコード、ビルドスクリプトなど) が外部から制御されるビルドツールを実行するため、この脆弱性は非常に狭い状況でのみ実際に影響を与えます。攻撃者が XML ファイルを制御できるが、ビルドステップ、Jenkinsfiles、エージェントで実行されるテストコードなどを変更できない場合。このアドバイザリの公開時点では、修正はありません。弊社がこれを発表する理由をご覧ください。
(CVE-2023-24441)

- 重要度低 GitHub プルリクエストカバレッジステータスプラグイン 2.2.0 以前では、GitHub Personal Access Token、Sonar アクセストークン、Sonar パスワードが、Jenkins コントローラーのグローバル構成ファイル com.github.terma.jenkins.githubprcoveragestatus.Configuration.xml をその構成の一部として暗号化されずに保存されます。これらの認証情報は、Jenkins コントローラーファイルシステムへのアクセス権を持つユーザーが表示できます。
このアドバイザリの公開時点では、修正はありません。弊社がこれを発表する理由をご覧ください。(CVE-2023-24442)

- 重要度高 Keycloak Authentication プラグイン 2.3.0 およびそれ以前では、ログイン時に既存のセッションが無効化されません。
これにより、攻撃者がソーシャルエンジニアリング技術を使用して、Jenkinsへの管理者アクセス権を取得する可能性があります。このアドバイザリの公開時点では、修正はありません。弊社がこれを発表する理由をご覧ください。(CVE-2023-24456)

- 重要度中 Keycloak Authentication プラグイン 2.3.0 以前では、OAuth フローに状態パラメーターを実装していません。これは、各認証リクエストに関連付けられた、推測できない一意の値です。この脆弱性により、攻撃者がユーザーを騙して、攻撃者のアカウントにログインさせる可能性があります。このアドバイザリの公開時点では、修正はありません。弊社がこれを発表する理由をご覧ください。(CVE-2023-24457)

- 重要度高 TestComplete サポートプラグイン 2.8.1 以前は、XML 外部エンティティ (XXE) 攻撃を防ぐための XML パーサーを構成していません。これにより、「TestComplete Test」ビルドステップの zip アーカイブ入力ファイルを制御できる攻撃者が、Jenkins コントローラーまたはサーバー側のリクエスト偽造から秘密を抽出するために外部エンティティを使用する細工されたファイルを Jenkins に解析させる可能性があります。このアドバイザリの公開時点では、修正はありません。弊社がこれを発表する理由をご覧ください。(CVE-2023-24443)

- 重要度高 OpenID プラグイン 2.4 およびそれ以前では、ログイン時に既存のセッションが無効化されません。これにより、攻撃者がソーシャルエンジニアリング技術を使用して、Jenkinsへの管理者アクセス権を取得する可能性があります。このアドバイザリの公開時点では、修正はありません。弊社がこれを発表する理由をご覧ください。(CVE-2023-24444)

- 重要度低 OpenID プラグイン 2.4 以前は、ログイン後のリダイレクト URL が正当に Jenkins を指示していると不適切に判断します。これにより、攻撃者がフィッシング攻撃を実行し、ユーザーをJenkins URLに移動させ、認証成功後に別のサイトにユーザーを転送することがかのうです。このアドバイザリの公開時点では、修正はありません。弊社がこれを発表する理由をご覧ください。(CVE-2023-24445)

- 重要度中 OpenID プラグイン 2.4 以前では、OAuthフローに状態パラメーターを実装していません。これは、各認証リクエストに関連付けられた、推測できない一意の値です。この脆弱性により、攻撃者がユーザーを騙して、攻撃者のアカウントにログインさせる可能性があります。このアドバイザリの公開時点では、修正はありません。弊社がこれを発表する理由をご覧ください。(CVE-2023-24446)

- 重要度中 RabbitMQ Consumer プラグイン 2.8 以前では、フォーム検証を実装するメソッドで権限チェックを実行しません。これにより、Overall / Read 権限を持つ攻撃者が、攻撃者が指定したユーザー名とパスワードを使用して、攻撃者が指定した AMQP サーバーに接続する可能性があります。さらに、このフォーム検証メソッドは POST リクエストを必要としないため、クロスサイトリクエスト偽造 (CSRF) の脆弱性が発生します。このアドバイザリの公開時点では、修正はありません。弊社がこれを発表する理由をご覧ください。
(CVE-2023-24447、CVE-2023-24448)

- 重要度中 PWauth Security Realm プラグイン 0.4 およびそれ以前では、フォーム検証を実装するメソッドでファイルの名前を制限しません。これにより、Overall / Read 権限を持つ攻撃者が、Jenkins コントローラーファイルシステムに攻撃者が指定したファイルパスの存在をチェックすることが可能です。このアドバイザリの公開時点では、修正はありません。弊社がこれを発表する理由をご覧ください。(CVE-2023-24449)

- 重要度中 view-cloner プラグイン 1.1 以前では、パスワードが暗号化されずに、構成の一部として Jenkins コントローラーのジョブ config.xml ファイルに保存されます。これらのパスワードは、アイテム / 拡張読み取り権限または Jenkins コントローラーファイルシステムへのアクセス権を持つユーザーが表示できます。このアドバイザリの公開時点では、修正はありません。弊社がこれを発表する理由をご覧ください。(CVE-2023-24450)

- 重要度中 Cisco Spark Notifier プラグイン 1.1.1 以前では、複数の HTTP エンドポイントで権限チェックを実行しません。これにより、Overall / Read 権限を持つ攻撃者が、Jenkins に蓄積された認証情報 ID を列挙する可能性があります。これらを攻撃の一部として利用し、別の脆弱性を利用して認証情報を取得する可能性があります。このアドバイザリの公開時点では、修正はありません。弊社がこれを発表する理由をご覧ください。
(CVE-2023-24451)

- 重要度中 BearyChat プラグイン 3.0.2 以前では、フォーム検証を実装するメソッドで権限チェックを実行しません。これにより、Overall / Read 権限を持つ攻撃者が、攻撃者が指定した URL に接続する可能性があります。さらに、このフォーム検証メソッドは POST リクエストを必要としないため、クロスサイトリクエスト偽造 (CSRF) の脆弱性が発生します。このアドバイザリの公開時点では、修正はありません。弊社がこれを発表する理由をご覧ください。(CVE-2023-24458、CVE-2023-24459)

- 重要度中 TestQuality Updater プラグイン 1.3 以前では、フォーム検証を実装するメソッドで権限チェックを実行しません。これにより、Overall / Read 権限を持つ攻撃者が、攻撃者が指定したユーザー名とパスワードを使用して、攻撃者が指定した URL に接続する可能性があります。さらに、このフォーム検証メソッドは POST リクエストを必要としないため、クロスサイトリクエスト偽造 (CSRF) の脆弱性が発生します。このアドバイザリの公開時点では、修正はありません。弊社がこれを発表する理由をご覧ください。(CVE-2023-24452、CVE-2023-24453)

- 重要度低 TestQuality Updater プラグイン 1.3 以前では、TestQuality Updater のパスワードが暗号化されずに、構成の一部としてJenkinsコントローラーのグローバル構成ファイル com.testquality.jenkins.TestQualityNotifier.xml に保存されます。このパスワードは、Jenkins コントローラーファイルシステムへのアクセス権を持つユーザーが表示できます。このアドバイザリの公開時点では、修正はありません。弊社がこれを発表する理由をご覧ください。(CVE-2023-24454)

- 重要度中 visualexpert Realm プラグイン 1.3 およびそれ以前では、フォーム検証を実装するメソッドでファイルの名前を制限しません。これにより、Item / Configure 権限を持つ攻撃者が、Jenkins コントローラーファイルシステムに攻撃者が指定したファイルパスの存在をチェックすることが可能です。このアドバイザリの公開時点では、修正はありません。弊社がこれを発表する理由をご覧ください。(CVE-2023-24455)

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

ソリューション

Jenkins プラグインを次のバージョンに更新してください。
- バージョン 306.va_7083923fd50 以降の Azure AD プラグイン
- BearyChat プラグイン: ベンダーのアドバイザリを参照してください
- Bitbucket OAuth プラグインのバージョン 0.13 以降
- Cisco Spark Notifier プラグイン: ベンダーのアドバイザリを参照してください
- Git Trigger プラグインのバージョン 2.38.1 以降
- GitHub プルリクエストビルダープラグイン: ベンダーのアドバイザリを参照してください
- GitHub プルリクエストカバレッジステータスプラグイン: ベンダーのアドバイザリを参照してください
- JIRA Pipeline Steps プラグイン: ベンダーのアドバイザリを参照してください
- Keycloak Authentication プラグイン: ベンダーのアドバイザリを参照してください
- Kubernetes Credentials Provider プラグインのバージョン 1.209.v862c6e5fb_1ef 以降
- MSTest プラグイン: ベンダーのアドバイザリを参照してください
- OpenId Connect Authentication プラグインのバージョン 2.5 以降
- OpenID プラグイン: ベンダーのアドバイザリを参照してください
- MacStadium プラグインのバージョン 1.32 以降
- PWauth Security Realm プラグイン: ベンダーのアドバイザリを参照してください
- RabbitMQ コンシューマープラグイン: ベンダーのアドバイザリを参照してください
- スクリプトセキュリティプラグインのバージョン 1229.v4880b_b_e905a_6 以降
- Semantic Versioning プラグインのバージョン 1.15 以降
- TestComplete サポートプラグイン: ベンダーのアドバイザリを参照してください
- TestQuality アップデータープラグイン: ベンダーのアドバイザリを参照してください
- view-cloner プラグイン: ベンダーのアドバイザリを参照してください
- visualexpert プラグイン: ベンダーのアドバイザリを参照してください

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

参考資料

https://jenkins.io/security/advisory/2023-01-24

プラグインの詳細

深刻度: Critical

ID: 171929

ファイル名: jenkins_security_advisory_2023-01-24_plugins.nasl

バージョン: 1.3

タイプ: combined

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

ファミリー: CGI abuses

公開日: 2023/2/27

更新日: 2023/10/24

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

リスク情報

VPR

リスクファクター: Medium

スコア: 6.7

CVSS v2

リスクファクター: Critical

基本値: 10

現状値: 7.4

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

CVSS スコアのソース: CVE-2023-24458

CVSS v3

リスクファクター: Critical

基本値: 9.8

現状値: 8.5

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

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

CVSS スコアのソース: CVE-2023-24456

脆弱性情報

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

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

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

パッチ公開日: 2023/1/24

脆弱性公開日: 2023/1/24

参照情報

CVE: CVE-2023-24422, CVE-2023-24423, CVE-2023-24424, CVE-2023-24425, CVE-2023-24426, CVE-2023-24427, CVE-2023-24428, CVE-2023-24429, CVE-2023-24430, CVE-2023-24431, CVE-2023-24432, CVE-2023-24433, CVE-2023-24434, CVE-2023-24435, CVE-2023-24436, CVE-2023-24437, CVE-2023-24438, CVE-2023-24439, CVE-2023-24440, CVE-2023-24441, CVE-2023-24442, CVE-2023-24443, CVE-2023-24444, CVE-2023-24445, CVE-2023-24446, CVE-2023-24447, CVE-2023-24448, CVE-2023-24449, CVE-2023-24450, CVE-2023-24451, CVE-2023-24452, CVE-2023-24453, CVE-2023-24454, CVE-2023-24455, CVE-2023-24456, CVE-2023-24457, CVE-2023-24458, CVE-2023-24459