Jenkinsの重大な脆弱性:CI/CDサーバーがRCE攻撃のリスクに晒される

Jenkinsプロジェクトは、コアとなる自動化サーバーとLoadNinjaプラグインに複数の脆弱性に対処する重要なセキュリティアドバイザリをリリースしました。これらの脆弱性は、継続的インテグレーションと継続的デプロイメント(CI/CD)環境に深刻なリスクをもたらし、任意のファイル作成、認証情報の漏洩、リモートコード実行(RCE)などの脅威を引き起こします。Jenkinsコントローラーは、エンタープライズネットワーク全体で昇格された権限を保持することが多いため、管理者は潜在的な悪用からビルドパイプラインを保護するためにパッチ適用を優先する必要があります。

アーカイブ抽出とシンボリックリンクの脆弱性

最も深刻な脅威は、CVE-2026-33001です。これは、Jenkinsコアのバージョン2.554およびLTS 2.541.2以前に影響を与える、深刻度が高い任意のファイル作成の脆弱性です。この問題は、Jenkinsが.tarおよび.tar.gzアーカイブを抽出する際に、シンボリックリンクをどのように処理するかに起因します。この見落としにより、攻撃者は、コントローラーのファイルシステム上の任意の場所にファイルを書き込むことができる悪意のあるアーカイブを作成できます。制限は、Jenkinsサービスを実行しているユーザーに割り当てられたオペレーティングシステムのファイル権限にのみあります。攻撃者がアイテムを構成したり、エージェントプロセスを制御したりする権限を持っている場合、“アーティファクトをアーカイブする”というポストビルドアクションなどの機能を悪用できます。意図されたディレクトリから抜け出すことで、攻撃者は悪意のあるGroovyスクリプトをJENKINS_HOME/init.groovy.d/ディレクトリに直接書き込んだり、承認されていないツールをJENKINS_HOME/plugins/フォルダにデプロイしたりできます。これにより、サービスが再起動または新しいファイルを処理する際に、Jenkinsコントローラーでリモートコード実行が可能になります。

WebSocket CLIにおけるDNSリバインディングの脆弱性

別の深刻な脆弱性であるCVE-2026-33002は、Jenkinsコマンドラインインターフェース(CLI)のWebSocketエンドポイントにおけるDNSリバインディングの脆弱性を含んでいます。これは、クロスサイトWebSocketハイジャック(CSWSH)を防ぐために実装されましたが、HostまたはX-Forwarded-Host HTTPリクエストヘッダーに安全に依存していました。攻撃者は、被害者を、Jenkinsコントローラーの内部IPアドレスに解決するためにDNSリバインディングを使用する悪意のあるWebサイトを訪問させることで、この脆弱性を悪用できます。これにより、信頼できないオリジンからWebSocket接続を確立できます。JenkinsインスタンスがプレーンHTTP経由でアクセス可能で、匿名ユーザーが昇格された権限を持っている場合、攻撃者は管理CLIコマンドを実行できます。環境の認証戦略によっては、このアクセスは、組み込みのGroovyスクリプティング機能(groovyおよびgroovyshコマンド)を介して任意のコード実行に簡単にエスカレートし、サーバーを完全に侵害する可能性があります。

LoadNinjaプラグインの脆弱性

LoadNinjaプラグインは、CVE-2026-33003およびCVE-2026-33004として追跡されている、深刻度が中程度の脆弱性2つに影響されています。Jenkinsによると、バージョン2.1以前では、APIキーが暗号化されずに直接、Jenkinsコントローラーのjob config.xmlファイルに保存されています。さらに、プラグインは、グラフィカルなジョブ構成インターフェースでこれらのキーをマスクしません。この見落としにより、拡張された読み取り権限を持つユーザーまたは直接ファイルシステムアクセスを持つユーザーは、機密の認証情報を迅速に取得し、外部のテスト環境に侵入する可能性があります。

対応と軽減策

管理者は、インフラストラクチャを保護するために、Jenkinsの毎週のバージョン2.555またはLTSバージョン2.541.3にすぐにアップグレードする必要があります。これらのパッチを適用したリリースでは、アーカイブ抽出に対する厳格なパス検証が導入され、ターゲットディレクトリ外またはシンボリックリンクを介してファイルを抽出することは許可されません。また、CLIのオリジンチェックは、容易に操作されるHTTPヘッダーではなく、公式に構成されたJenkins URLに基づいて適用されます。LoadNinjaを使用している組織は、プラグインをバージョン2.2に更新し、APIキーが適切に暗号化およびマスクされるようにする必要があります。直ちに更新が不可能な場合は、セキュリティチームがすべてのコントローラーで認証を強制し、匿名ユーザーロールからすべての権限を剥奪し、JenkinsがHTTPS経由でのみアクセス可能であることを確認して、攻撃対象領域を最小限に抑える必要があります。

関連情報


元記事: https://gbhackers.com/new-critical-jenkins-vulnerabilities/