本文へ移動
情シスのミカタ
ニュース約7分で読めます

Jenkins本体に脆弱性15件 読み取りの権限で届くものも、LTSは2.580.2へ

Jenkinsは2026年10月28日、本体の脆弱性15件を修正した2.588とLTS 2.580.2を公開しました。15件を攻撃に要る権限で並べ直し、匿名の読み取りを許す設定の危うさと、更新の前後に確認することをまとめます。

公開 情シスのミカタ編集部AIにより執筆編集部が確認:
文字
Jenkins本体に脆弱性15件 読み取りの権限で届くものも、LTSは2.580.2へ

この記事のまとめ

  • Jenkinsは10月28日、本体の脆弱性15件(High 13件・Medium 2件)を修正しました。修正版は毎週版の2.588とLTSの2.580.2です。
  • 5件は全体の読み取り(Overall/Read)の権限だけで攻撃でき、1件はログインした利用者ならコード実行につながります。
  • 匿名の読み取りを許す設定や、閲覧の権限を広く配る運用は、更新までの間に見直します。オフラインのJenkinsは同梱のプラグインの変更にも注意します。
こんな方に#20代#30代#40代実務

見るだけの権限なら、配っても困らない。社内のJenkinsで、そう考えて閲覧の権限を広く渡していないでしょうか。Jenkinsのプロジェクトが2026年10月28日に公開した本体の脆弱性15件のうち、5件は全体の読み取り(Overall/Read)の権限だけで攻撃できます。

修正版は、毎週出る版の2.588と、長期サポート版(LTS)の2.580.2です。毎週版は2.587以前、LTSは2.580.1以前のすべての版が対象です。15件のうち13件の深刻度はHighで、悪用の報告は勧告に書かれていません。

Jenkins Security Advisory 2026-10-28のページの冒頭。対象はJenkins本体で、1件目のSECURITY-4125(CVE-2026-117612・High)は、XStreamの逆シリアル化の制限がresolves-to属性に効かず、Overall/Readとログインがあれば任意の型を作れてリモートでコード実行のおそれがあると説明している
Jenkinsの10月28日の勧告。1件目は読み取りの権限とログインで届くRCE出典: Jenkins project(引用)

15件を、攻撃に要る権限で並べ直す

勧告は脆弱性ごとに、攻撃者に要る権限を書いています。社内の権限の配り方と照らし合わせやすいように、権限の軽い順に並べました。

攻撃に要る権限 脆弱性 起こりうること
認証なし(初期設定の途中だけ) SECURITY-4122 初期設定のウィザードで管理者を作り直す間に、攻撃者が管理者のアカウントを作る(攻撃の難しさは高い)
Overall/Read SECURITY-4188 コントローラー上の任意のconfig.xmlをエージェントの設定として読み込ませ、保存の際の上書きから、コード実行につながるおそれ
Overall/Read SECURITY-4226 「古いデータの管理」に偽の警告を出し、管理者が対応すると利用者のデータを書き換えられる。Jenkins自身の利用者データベースなら、パスワードも含む
Overall/Read SECURITY-4229 パンくずリストのツールチップで蓄積型のXSS
Overall/Read SECURITY-4206 HTTPプロキシのサーバー、ポート、ユーザー名、除外の一覧が見える(Medium)
Overall/Read SECURITY-4237 JENKINS_HOMEのファイル名、大きさ、更新日時が見える(Medium)
Overall/Readとログイン(またはconfig.xmlを送れる権限) SECURITY-4125 XStreamの逆シリアル化の制限をすり抜け、リモートでコード実行のおそれ
Item/Configure SECURITY-4225、SECURITY-4248 細工したジョブの設定で蓄積型のXSS。成果物を並行して保存し、コントローラーの任意の場所にファイルを書く(コード実行につながるおそれ)
Item/CreateとItem/Configure SECURITY-4187 名前を変えるときのシンボリックリンクをたどり、コントローラーの任意のファイルを読む
Agent/Configure SECURITY-4123 古い形式のエージェントの起動コマンドが、管理者の承認なしにコントローラーで動く
エージェントの乗っ取り SECURITY-4232、SECURITY-4249 ワークスペースの画面やエラーの表示で、エージェントからXSS
APIトークンの入手 SECURITY-4189 トークンを失効させても、「ログインしたままにする」のCookieで入り続けられる

残るSECURITY-4243は、設定のXMLの入れ子の制限をすり抜けるものです。勧告の時点で分かっている影響は、名前と表示名だけの利用者の記録を作れる範囲で、ログインできるアカウントは作れないとしています。

表の上半分が重いのは、Overall/Readが「Jenkinsの画面を開ける」ための最低限の権限だからです。ジョブを見るだけの開発者、ビルドの結果を確認する品質保証の担当、協力会社のアカウントにも、ふつうは付いています。

匿名で読める設定なら、入口は外に開く

認可の設定で匿名の読み取りを許可(Allow anonymous read access)していると、ログインしていない人にもOverall/Readが付きます。ビルドの状況を社内の誰でも見られるように、この設定にしているJenkinsは珍しくありません。

その状態でインターネットから届くと、上の表の5件は、ログインなしで試せることになります。中でもSECURITY-4188は、設定ファイルを読み込ませて上書きさせると、コード実行につながるおそれがあると勧告は書いています。社内だけで使っているつもりでも、VPNの先や、委託先と共有している環境から届かないかは、一度確認しておきたいところです。

SECURITY-4226は、少し変わった型です。攻撃者は警告を出すだけで、実際に書き換えるのは、警告に対応した管理者の操作です。更新が済むまでは、「古いデータの管理」に見慣れない警告が出ても、そのまま保存しないでください。

APIトークンを消しても、入り続けられた

SECURITY-4189は、運用の手順そのものに関わります。トークンが漏れたら失効させる、という対応をしていても、これまでの版では、そのトークンで「ログインしたままにする」のCookieを手に入れられました。Cookieの有効性は、取得に使った資格情報とは関係なく続きます。

2.588と2.580.2からは、HTTPのBasic認証(APIトークンを含む)では、このCookieを受け取れなくなりました。過去にトークンの漏えいで失効の対応をしたアカウントがあれば、その後のアクセスログも見ておくと安心です。

エージェントからの攻撃も、コントローラーに届いた

Jenkinsは、エージェントをコントローラーより信用しない作りです。エージェントから届くデータに制限をかけ、乗っ取られてもコントローラーまで被害が及ばないようにしています。SECURITY-4232と4249は、その境界から漏れていた例でした。

ビルドを動かすエージェントは、開発者が自由にスクリプトを書けるうえ、外部のライブラリも取り込みます。乗っ取られる前提で考えると、コントローラーの更新を後回しにする理由はありません。

更新の前後に確認すること

2.580.2自体には、LTSの更新の手引きに書くほどの変更はありません。ただ、修正のいくつかは動きを変えています。

  • SECURITY-4123の修正で、古い形式の設定に書かれたエージェントの起動コマンドを、自動で変換しなくなりました。コントローラー上でコマンドを動かしてエージェントを起動している場合は、更新後に起動するかを確認します。
  • SECURITY-4125と4225の修正で、逆シリアル化のときの型の確認が厳しくなりました。古いプラグインの設定で読み込みのエラーが出たときに、一時的に確認を外すシステムプロパティが勧告に載っています。保護を外す設定なので、原因のプラグインを更新するまでのつなぎにとどめます。
  • XSSの3件(SECURITY-4225、4229、4232)は、Content Security Policyの保護で既知の影響を抑えられると勧告は書いています。使えるのは2.539以降、LTSなら2.541.1以降です。

LTSの2.568系から上げる会社は、もう1つ注意があります。2.580.1から、Command Agent Launcher、SSH server、Instance Identityなど9個のプラグインが、jenkins.warに同梱されなくなりました。アップデートセンターに届くJenkinsは自動で入れ直すため、影響はありません。インターネットにつながらない閉じたネットワークのJenkinsだけは、新しい版を起動する前に、プラグインのファイルを手で置いておく必要があります。

JenkinsのLTSの変更履歴の2.580.2の項。2026年10月28日公開、動作を確認した構成はLinuxとWindows、JDKは21と25。セキュリティの修正のほか、handlebarsの4.7.10への更新、ASMの最新版の取り込み、Jetty 12.1.14への更新などが並ぶ
LTSの変更履歴。2.580.2は10月28日公開で、動作確認はJava 21と25出典: Jenkins project(引用)

対象になる会社

  • 社内でJenkinsのコントローラーを動かしている会社は、版にかかわらず対象です。毎週版は2.587以前、LTSは2.580.1以前のすべてが該当します。
  • 急ぐのは、インターネットや委託先から届くJenkins、匿名の読み取りを許すJenkins、協力会社や他部署に閲覧のアカウントを配っているJenkinsです。
  • エージェントをクラウドの使い捨ての仮想マシンや、他部署の管理するサーバーで動かしている場合も、早めの更新が向いています。
  • GitHub ActionsやGitLab CI/CDなど、別のCIだけを使っている会社は対象外です。Jenkinsをもとにした商用の製品は、各社の告知で確認してください。

今週の作業の段取り

  1. 社内のJenkinsを洗い出し、画面の右下に出る版を確認します。毎週版かLTSかもあわせて控えます。
  2. 「Jenkinsの管理」のセキュリティの設定で、匿名ユーザーに読み取りを許していないか、Overall/Readを誰に付けているかを見てください。外から届く環境なら、更新までの間だけでも社外からのアクセスを止めます。
  3. JENKINS_HOMEをバックアップしてから、LTSなら2.580.2、毎週版なら2.588に上げます。閉じたネットワークで2.568系から上げる場合は、同梱から外れたプラグインのファイルを先に置いておきます。
  4. 更新後に、エージェントの起動と、ジョブの設定の保存でエラーが出ないかを試します。出たときは、勧告のシステムプロパティで一時的に外し、原因のプラグインを特定する流れです。
  5. 落ち着いたら、Content Security Policyの保護を有効にし、Overall/Readを配る範囲を、本当に画面を見る必要のある人に絞ります。

出典・参考

編集部が確認:。確認した監修者は、この下に載せています。

執筆

情シスのミカタ編集部AIにより執筆

書いた AI: AI記者(解説)

法令・官公庁の発表・企業の公式発表などの一次情報を調べて、情シス向けの解説・比較・テンプレの記事を書きます。数字と日付は出典と照らして確かめ、記事の最後に出典を載せています。使っているAI: Anthropic Claude。

監修

佐々木 航株式会社Game

代表取締役。工学部出身で、21歳で起業してからシステム会社の経営一筋で8期目。アプリの受託開発から始め、いまはAIを使ったシステムソリューションを手がけています。150社以上の企業とのプロジェクトで培った開発と情報システムの現場の経験と声を形にし、激動の時代を乗り越えたいと考えています。

メモ: 掲載時に自動で(しばらくの間)

記事は AI が一次情報を調べて書き、機械の検査を通してから公開しています。人が見ているもの・見ていないものはAI の使い方に書いています。まちがいに気づいたら訂正・ご指摘からお知らせください。直したら、記事の最後に何を直したかを書きます。

役に立ったら、いいねと共有をお願いします