30秒で判断
対応すべき人:
- Jenkins 2.567 以前を使用している(LTS: 2.555.2 以前)
- Jenkins コントローラーへの HTTP リクエストが可能な内部ユーザー・CI 連携アカウントが存在する
対応不要な人:
- Jenkins 2.568 以降(LTS: 2.555.3 以降)を使用している
- Jenkins コントローラーが完全に外部・内部ともネットワーク隔離されており HTTP アクセス不可の環境
確認コマンド:
# Jenkins バージョン確認(Jenkins 管理 UI または)
curl -s http://localhost:8080/api/json?pretty=true | python3 -m json.tool | grep version
# または Jenkins ヘッダーを確認
curl -I http://localhost:8080/ 2>/dev/null | grep X-Jenkins
概要
Jenkins 2.567 以前(LTS: 2.555.2 以前)において、攻撃者が細工した config.xml を Jenkins コントローラーへ送信することで、Jenkins コアまたはプラグインで定義された任意の型をデシリアライズさせることができます。
デシリアライズされたオブジェクトはその後 HTTP リクエストを処理する状態になるため、以下の攻撃が可能です:
- 任意ユーザーへのなりすまし:管理者を含む任意のユーザーとして HTTP リクエストを送信
- スクリプトコンソール経由の任意コード実行:Groovy スクリプトを実行してサーバー上のコードを実行
- 任意ファイル読み取り:Jenkins コントローラー上の任意のファイルを取得
Jenkins は CI/CD パイプラインの中心に位置することが多く、ソースコード、シークレット、デプロイキーなどへのアクセスを持つことが多いため、悪用された場合の影響は広範囲に及ぶ可能性があります。
CVSSベクトル
| 項目 | 値 | 説明 |
|---|---|---|
| Attack Vector | Network | ネットワーク経由で攻撃可能 |
| Attack Complexity | Low | 特別な条件不要 |
| Privileges Required | Low | 一般的な認証済みユーザー権限 |
| User Interaction | None | ユーザー操作不要 |
| Scope | Unchanged | スコープ変化なし |
| Confidentiality | High | 機密性への影響大 |
| Integrity | High | 完全性への影響大 |
| Availability | High | 可用性への影響大 |
影響を受けるソフトウェア
| 製品 | 影響バージョン | 修正バージョン |
|---|---|---|
| Jenkins(週次リリース) | 2.567 以前 | 2.568 |
| Jenkins LTS | 2.555.2 以前 | 2.555.3 |
修正バージョンと回避策
推奨対応: Jenkins を 2.568 / LTS 2.555.3 へアップデートします。
緊急時の回避策:
config.xmlの提出を行う権限を持つユーザーを最小限に制限する- Jenkins コントローラーへのネットワークアクセスを信頼できるネットワークのみに制限する
- 影響を受ける機能を使用するプラグインを一時的に無効化する
関連リンク
データソース: NVD (NIST), GitHub Advisory Database
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
