この記事の概要
- Jenkins 2.567以前(LTS: 2.555.2以前)に、Overall/Readパーミッションを持つ攻撃者がリモートから任意コードを実行できるデシリアライズ脆弱性が確認されました(CVSSスコア: 8.8 / High)。
- 攻撃に成功するとScript Console経由での任意コード実行、またはJenkinsコントローラ上の任意ファイル読み取りが可能になります。CI/CDパイプライン全体が乗っ取られるリスクがあります。
- 修正済みバージョン(Jenkins 2.568 / LTS 2.555.3)へのアップデートが唯一の根本対策です。
この脆弱性について
| 項目 | 内容 |
|---|---|
| CVE-ID | CVE-2026-53435 |
| CVSSスコア(v3.1) | 8.8 / High |
| CVSSベクタ | AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| 脆弱性の種類 | デシリアライズ(CWE-502: Deserialization of Untrusted Data) |
| 公開日 | 2026年6月10日 |
| 対象バージョン | Jenkins weekly 2.567以前 / Jenkins LTS 2.555.2以前 |
| 修正バージョン | Jenkins weekly 2.568 / Jenkins LTS 2.555.3 |
| 報告元 | Jenkins Bug Bounty Program(European Commission後援) |
| ベンダーアドバイザリ | https://www.jenkins.io/security/advisory/2026-06-10/#SECURITY-3707 |
原因
Jenkinsは内部的に複数の場所でシリアライズ・デシリアライズを利用しています。
代表的な箇所として、エージェント/コントローラ間の通信(Remotingライブラリ)や、ビルドデータや設定の保存・読み込み(XStream)があります。
一般的なデシリアライズ攻撃を防ぐため、JenkinsはJEP-200に基づくカスタムデシリアライズフィルタを持ち、デシリアライズを許可する型をJenkinsコアまたはプラグインで定義された型に限定しています。
また、Jenkinsのリクエストルーティングにはstapler Webフレームワークが使われており、2018年以降はリフレクションによるルーティング対象をJenkinsコアまたはプラグイン定義の型のみに制限し、HTTPリクエスト処理に関連する型・アノテーションを持つフィールドやメソッドのみにアクセスを制限していました。
しかし今回の脆弱性では、この2つの制限を組み合わせて回避する方法が発見されました。
攻撃者が細工した config.xml をPOSTリクエストで送信すると、Jenkinsのデシリアライズフィルタとstaplerのルーティング制限を同時に迂回し、任意の型をデシリアライズした上でHTTPリクエストを処理させることができます。
影響範囲
攻撃が成立する条件
この脆弱性を悪用するには、攻撃者が以下の権限を同時に持っている必要があります。
- Overall/Readパーミッション(かつ匿名ユーザーではないこと)
- 以下のいずれか1つ以上:
POST config.xmlを可能にする権限(Item/Configure、View/Configure、Agent/Configureなど)
外部公開されたJenkinsや、認証が緩く設定されたCIサーバーでは攻撃リスクが特に高いです。
悪用された場合のリスク
Jenkinsのアドバイザリには以下の悪用方法が記載されています(「この一覧は網羅的ではない」と明記されています)。
- 任意のユーザーになりすまして、そのユーザーの権限でHTTPリクエストを送信できる
- Script Consoleへのアクセスも含まれ、Groovyスクリプトとして任意コードをJenkinsコントローラ上で実行可能
- Jenkinsコントローラ上の任意ファイルを読み取れる
- 認証情報、シークレット、設定ファイルなどの機密情報が漏洩するリスク
CI/CDパイプラインが乗っ取られた場合、本番環境へのデプロイコードの改ざんや、シークレットマネージャへのアクセスなど、インフラ全体への影響が生じる可能性があります。
対応策・回避策
根本対策:Jenkinsのアップデート
今すぐ以下のバージョンへアップデートしてください。
| チャンネル | 修正バージョン |
|---|---|
| Jenkins weekly | 2.568 |
| Jenkins LTS | 2.555.3 |
Linuxパッケージ(RPM系)でのアップデート手順
# 現在のバージョン確認
java -jar /usr/lib/jenkins/jenkins.war --version
# または
rpm -q jenkins
# yumでのアップデート
sudo yum update jenkins
# Jenkinsサービス再起動
sudo systemctl restart jenkins
sudo systemctl status jenkins
Linuxパッケージ(DEB系)でのアップデート手順
# 現在のバージョン確認
dpkg -l jenkins
# aptでのアップデート
sudo apt-get update
sudo apt-get install --only-upgrade jenkins
# Jenkinsサービス再起動
sudo systemctl restart jenkins
sudo systemctl status jenkins
Dockerを使っている場合
# 最新イメージをpull
docker pull jenkins/jenkins:lts
# または特定バージョンを指定
docker pull jenkins/jenkins:2.555.3-lts
# コンテナを再作成
docker stop jenkins
docker rm jenkins
docker run -d \
--name jenkins \
-p 8080:8080 \
-p 50000:50000 \
-v jenkins_home:/var/jenkins_home \
jenkins/jenkins:lts
Kubernetes(Helmチャート)でのアップデート手順
# Helmリポジトリを更新
helm repo update
# 現在のチャートバージョン確認
helm list -n jenkins
# アップグレード(values.yamlでイメージタグを指定している場合)
helm upgrade jenkins jenkinsci/jenkins \
--namespace jenkins \
--set controller.image.tag="2.555.3-lts" \
--reuse-values
# Podの状態確認
kubectl rollout status deployment/jenkins -n jenkins
暫定回避策
アップデートがすぐにできない場合、以下の暫定策を検討してください。
- 外部からのアクセス制限:JenkinsをVPN内や内部ネットワークに限定し、インターネットから直接アクセスできないようにする
- 匿名ユーザーの無効化:「Jenkinsの管理 → セキュリティの設定」でAnonymous Userのアクセス権限を最小化する
- Overall/ReadとItem/Configureの権限付与を厳格化:不要なユーザーへの権限付与を見直す
確認方法
自環境が脆弱なバージョンかどうかを確認する方法を以下に示します。
# Jenkins REST APIでバージョン確認(curlが使える場合)
curl -s https://your-jenkins-url/api/json \
--user 'username:api-token' \
| python3 -c "import sys,json; d=json.load(sys.stdin); print('Jenkins version:', d.get('jenkins.version', 'N/A'))"
# または、ブラウザで以下にアクセス
# https://your-jenkins-url/api/json?pretty=true
# "jenkins.version" フィールドを確認
# Linuxのjenkinsパッケージのバージョン確認
java -jar /usr/lib/jenkins/jenkins.war --version 2>/dev/null || \
find / -name "jenkins.war" 2>/dev/null -exec java -jar {} --version \;
Jenkins 2.567以前(LTS: 2.555.2以前)が表示された場合は脆弱なバージョンです。
まとめ
CVE-2026-53435はJenkins coreに存在するデシリアライズ脆弱性で、Overall/Readパーミッションを持つ一般ユーザーからScriptConsole経由の任意コード実行につながる可能性があります。
CVSSスコアは8.8(High)と高く、CI/CDパイプラインを持つ環境では業務影響が非常に大きくなります。
Jenkins 2.568(LTS: 2.555.3)へのアップデートが唯一の根本対策です。アップデートが困難な場合は、ネットワーク制限やアクセス権限の見直しを暫定対応として実施してください。
Jenkinsを使うインフラチームは、まず影響バージョンを使っていないか確認し、使っている場合は今週中のアップデートを計画することを強くおすすめします。
参考リンク
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-53435
- ベンダーアドバイザリ(Jenkins公式): https://www.jenkins.io/security/advisory/2026-06-10/#SECURITY-3707
- JEP-200(Jenkinsデシリアライズフィルタ仕様): https://jenkins.io/jep/200
- Jenkins インストールガイド: https://www.jenkins.io/doc/book/installing/


コメント