CVE-2026-102490 Zammad|更新判断と侵害確認

  • URLをコピーしました!
目次

はじめに

2026 年 9 月 30 日、オランダの NCSC は、オープンソースのヘルプデスク・チケット管理システム Zammad の脆弱性 CVE-2026-102489 と CVE-2026-102490 が実際の攻撃に悪用されているとして、注意喚起を公開しました。10 月 2 日には、米国 CISA の KEV(Known Exploited Vulnerabilities)カタログにも両 CVE が追加されています。

本記事の主題である CVE-2026-102490 は、サーバー上の zammad ユーザーから root への権限昇格です。ベンダーは 7.2.0 への更新を推奨していますが、10 月 4 日時点で 7.2.0 は CVE-2026-102490 の修正版として公表されていません。そのため、「最新版へ更新すれば対応完了」とは判断しにくい状況です。

本記事では、Zammad を自己ホストしている情シス・Linux サーバーの運用担当者と、委託先へ対応状況を照会する担当者を対象に、更新判断と侵害確認の進め方を整理します。記載内容は、2026 年 10 月 4 日(日本時間)時点で確認した一次情報に基づきます。

この記事でわかること
  • CVE-2026-102490 と CVE-2026-102489 の役割の違い
  • 影響バージョンの記載が情報源ごとに異なる点と、その扱い方
  • 自己ホスト、Docker、SaaS、委託運用ごとの確認項目
  • ログ保全から更新、稼働確認までの進め方
  • 更新後の侵害調査と、修正状況を追跡するための完了判断

結論として、CVE-2026-102490 は単独でリモートから悪用できるものではなく、攻撃者がすでにサーバー上でコードを実行できることが前提です。7.2.0 への更新は推奨対応ですが、10 月 4 日時点では CVE-2026-102490 の修正確認とは別に扱う必要があります。更新の前にログを保全し、更新後も侵害調査と修正情報の追跡を続けてください。

CVE-2026-102490 と CVE-2026-102489 の違い

両 CVE は、DIVD(Dutch Institute for Vulnerability Disclosure)が自組織への侵害を調査する過程で特定し、同じ調査案件 DIVD-2026-00015 で公表したものです。CVE-2026-102489 が外部からの侵入とコード実行、CVE-2026-102490 がその後の root への権限昇格を担います。

侵入から root への権限昇格までの関係

CNA である DIVD の CVE レコードと、ベンダーの声明を比較すると次のとおりです。

項目CVE-2026-102489CVE-2026-102490
種類セッションハイジャックからのリモートコード実行(CWE-384)権限管理の不備による権限昇格(CWE-269)
攻撃の起点ネットワーク経由(認証不要、受動的なユーザー操作を要する評価)サーバー上の zammad ユーザー(ローカル)
得られる権限OS 上の zammad ユーザーroot
DIVD の影響バージョン6.3.0〜6.5.4(7.0.0〜7.1.3 にも存在するが、実行環境の条件により悪用不可)1.5.0〜7.1.0-alpha(説明文では最新の alpha を含む全バージョン)
ベンダーの見解悪用できるのは 6.5 以前で、7.0 以降は影響なし。7.2.0 に関連コードの強化を含む10 月 1 日に詳細を受領し、対応中
CVSS v4.0(DIVD、単独)8.78.5

両 CVE のレコードには、2 件を連鎖させたシナリオの CVSS v4.0 スコア 9.4 も併記されています。9.4 は連鎖時の評価であり、CVE-2026-102490 単独のスコアではありません。また、CVE-2026-102489 は DIVD が「悪用できない」と表現する 7.0.0〜7.1.3 について、ベンダーは「影響しない」と表現しており、両者の表現は一致していません。

ベンダー側では、Zammad の GitHub Security Advisories を公開しているメンテナーが、コミュニティの告知スレッドで CVE-2026-102490 の前提条件を次のように説明しています。

参考: Zammad Community(ベンダーの追記、2026 年 10 月 1 日)
“This issue cannot be exploited remotely on its own.”
(この問題は、単独ではリモートから悪用できません。)
https://community.zammad.org/t/take-care-local-privilege-escalation-cve-2026-102490-is-reported-as-being-actively-exploited/21297

同じ追記では、攻撃者がすでにサーバーへアクセスできる必要があるとしています。ただし、CVE-2026-102489 のようなリモートからのコード実行と組み合わされると、外部から root 権限の取得まで進む可能性があります。DIVD の案件ページは、9 月 21 日に脆弱性が悪用されて自組織が侵害されたとしています。

zammad ユーザーとコンテナ内 root の区別

権限昇格の影響を判断する際は、次の 3 つを混同しないことが重要です。

OS 上の zammad ユーザー

Zammad のサービスを実行する OS 上のアカウントです。CVE-2026-102489 のコード実行はこの権限で行われ、CVE-2026-102490 はこの権限を起点に root を取得します。

Zammad のログインユーザー・管理者

Web 画面にログインするエージェントや管理者のアカウントです。公開されている CVE-2026-102490 の説明は、Web 画面の管理者権限ではなく、OS 上の zammad ユーザーを起点としています。

コンテナ内の root とホストの root

CVE レコードは対象プラットフォームに Linux と Docker を記載しています。Docker 環境で取得される root がコンテナ内にとどまるか、ホストへ及ぶかは、公開情報では確認できません。

Docker で動かしているから影響しない、とは判断できません。コンテナ内の root でも、そのコンテナから参照できるデータや接続情報は影響を受けます。特権モードや Docker ソケットのマウントを使っている構成では影響が広がり得るため、あわせて確認してください。

CISA KEV の記載と対応期限の扱い

CISA が GitHub で公開している KEV のデータでは、CVE-2026-102490 は次のように登録されています。CVE-2026-102489 も同日に追加され、同じ対応期限が設定されています。

項目KEV の記載(CVE-2026-102490)
追加日(dateAdded)2026-10-02
対応期限(dueDate)2026-10-05
必要な対応(requiredAction の要旨)ベンダーの指示に沿った緩和策の適用。緩和策がない場合は製品の使用中止。BOD 26-04 と「Forensics Triage Requirements」への準拠
フォレンジックトリアージ(forensicTriage)Yes
ランサムウェアでの利用(knownRansomwareCampaignUse)Unknown(不明)

この対応期限は、CISA の指令に基づく米国政府機関向けの期限であり、日本企業へ一律に適用される義務ではありません。一方で、KEV が緩和策の適用だけでなく使用中止や調査(フォレンジックトリアージ)まで求めている点は、自社の優先度を判断する材料になります。ランサムウェアでの利用が「Unknown」であることは、利用されていないという意味ではありません。

Zammad 脆弱性の影響バージョンと自環境の確認

CVE-2026-102490 の影響範囲は、情報源によって記載が一致していません(CVE レコード、DIVD の案件ページ)。影響範囲外と読める版を安全と判断せず、利用形態と稼働版を把握したうえで、判断を保留する項目を明確にします。

CVE-2026-102490 の影響バージョンの記載

情報源記載内容確認した版・日付
CVE レコード(構造化された影響バージョン欄)1.5.0 以上 7.1.0-alpha 未満が affected、1.5.0 未満は unknown、それ以外の既定値は unaffected2026 年 10 月 3 日更新のレコード
CVE レコードの説明文、DIVD の案件ページ最新の alpha を含む全バージョンDIVD の案件ページは 10 月 1 日更新
オランダ NCSC未修正で、一般に使われている全バージョンに存在9 月 30 日付の注意喚起
Zammad(ベンダー)詳細を受領して対応中。影響バージョンの判定は未公表10 月 1 日の追記

参考: NCSC(オランダ)注意喚起(2026 年 9 月 30 日)
“De tweede kwetsbaarheid (CVE-2026-102490) is nog niet opgelost.”
(2 件目の脆弱性 CVE-2026-102490 は、まだ修正されていません。)
https://www.ncsc.nl/alerts/actief-misbruik-van-zeroday-kwetsbaarheden-in-zammad-update-nu

構造化された影響バージョン欄だけを見ると 7.1.0-alpha 以降は対象外に見えますが、説明文や NCSC の記載とは一致しません。7.1 系や 7.2.0 を「影響範囲外だから安全」と判断せず、ベンダーの判定が公表されるまでは影響を受ける可能性がある前提で扱うことを推奨します。

7.2.0 への更新と修正版の確認状況

ベンダーが推奨する 7.2.0 への更新で何が確認できていて、何が未確定なのかを分けると次のとおりです。

区分内容次の確認先
確認済みベンダーは 7.2.0(現行の安定版)への更新と、6.5 以前を使っている場合の即時更新を推奨。7.2.0 には CVE-2026-102489 に関連するコードの強化を含むZammad の声明
判断保留7.2.0 が CVE-2026-102490 を修正しているか。7.2 の公開日(9 月 23 日)は、ベンダーが詳細を受領したとする 10 月 1 日より前GitHub Security Advisories
判断保留7.1.0-alpha 以降と 7.2.0 が影響を受けるかベンダーの判定、CVE レコードの更新
未公表CVE-2026-102490 の修正版、ベンダーによる IoCGitHub Security Advisories、リリース一覧

10 月 4 日時点で、Zammad の GitHub Security Advisories の一覧に CVE-2026-102490 の項目は見当たらず、リリース一覧の最新版も 7.2(9 月 23 日公開)でした。一覧に掲載がないことは、修正が存在しないことの証明ではありません。ベンダーは声明で、CVE-2026-102490 の続報の参照先として GitHub の Security Advisories を案内しています。

7.0 以降は CVE-2026-102489 の影響を受けないとされていますが、CVE-2026-102490 の前提は OS 上の zammad ユーザー権限を得ていることです。別の経路で実行権限を得た場合も権限昇格の前提が成立し得るため、7.x 系でも更新と露出の制限を後回しにしないことを推奨します。

利用形態別の確認項目

稼働版は、管理画面のシステム(System)区分にある「Version」で確認できます(Zammad Admin Documentation: Version)。そのうえで、利用形態ごとに次の項目を確認します。

自己ホスト(パッケージ)

稼働版、OS とそのサポート状況、インターネットからの到達可否、リバースプロキシの構成、Elasticsearch などの関連サービスの版を確認します。OS 側では、パッケージ管理ツールで zammad パッケージの版を確認できます(例: dpkg -l zammad、rpm -q zammad)。

自己ホスト(Docker / Docker Compose)

稼働版に加え、.env の VERSION 指定、公開しているポート、特権モードや Docker ソケットのマウントの有無を確認します。

SaaS(Zammad のホスティング)

利用者側でホストの更新作業は行いません。提供元へ、CVE-2026-102490 の影響有無、対応状況、侵害調査の結果と利用者への通知方針を確認します。SaaS であることだけを理由に、影響がないとは判断できません。

委託運用

委託先へ、稼働版、導入方式、公開経路、更新前のログ保全の有無、更新予定、侵害調査の実施状況と結果を照会します。

ログ保全と Zammad の更新手順

自己ホスト環境では、「露出の制限とログ保全 → 更新経路の確認 → 更新 → 稼働確認」の順に進めます。更新作業そのものは公式ドキュメントに従い、本記事では判断が必要なポイントを示します。

不審なプロセスやファイル、見覚えのないアカウント、想定外の通信など、すでに侵害の疑いがある場合は分岐が必要です。侵害の疑いがある場合は、通常の更新作業より、ネットワークからの隔離と証拠保全、社内 CSIRT や専門事業者への相談を優先してください。更新や再起動によって、調査に必要な痕跡が失われる場合があります。

手順
露出状況を確認し、公開を制限する

Zammad がインターネットから直接到達できるか、リバースプロキシや送信元制限がどう構成されているかを確認します。すぐに更新できない場合は、業務影響を確認したうえで、VPN 経由に限定する、送信元 IP アドレスを制限する、一時停止するといった措置を検討します。DIVD は、版 7 への更新またはオフライン化を助言しています。

これらは侵入の機会を減らす措置であり、CVE-2026-102490 自体の修正ではありません。また、ログを取得するために危険な公開状態を続ける必要はありません。

手順
ログとシステム状態を保全する

NCSC は、更新の前にアプリケーションとネットワークのログのコピーを取ることを推奨しています。CVE-2026-102490 の詳細が今後公表された際に、侵害の有無を確認する材料になるためです。保全の対象は、Zammad のアプリケーションログ、リバースプロキシのアクセスログとエラーログ、OS の認証ログ、ファイアウォールやプロキシなどのネットワークログです。

パッケージ版では、Zammad と nginx のログが /var/log/zammad と /var/log/nginx にある構成が一般的です(DIVD のログ検査スクリプトの既定値と同じです)。実際のパスは自環境で確認してください。取得例は次のとおりです。

log_archive="/root/zammad-logs-$(date +%Y%m%d%H%M%S).tar.gz"
sudo tar -czf "$log_archive" /var/log/zammad /var/log/nginx
sudo sha256sum "$log_archive"

Docker Compose 版では、更新時の docker compose up -d でコンテナが再作成されると、ロギングドライバーの設定によってはそれまでのコンテナログが参照できなくなります。更新前に、Compose ファイルのあるディレクトリで次のようにログを保存します。

docker compose logs --no-color --timestamps > zammad-compose-logs-$(date +%Y%m%d%H%M).log

保全したファイルは、サーバー外の安全な場所へコピーします。仮想マシンで稼働している場合は、変更前のスナップショット取得も検討します。

手順
更新経路と依存要件を確認する

Zammad の更新ドキュメントは、メジャーバージョンを飛ばさずに更新するよう案内しています。

参考: Zammad System Documentation「Updating Zammad」
“you should not skip major Zammad versions while updating.”
(更新時に Zammad のメジャーバージョンを飛ばすべきではありません。)
https://docs.zammad.org/en/latest/install/update.html

6.5 から 7 系への更新では、7.0 で導入された変更も含め、対象版の公式更新手順と依存要件を確認します。7.2 のリリースノートには、Elasticsearch 7 のサポート終了(8.15 が最小要件)、更新後の Elasticsearch の再インデックス、リバースプロキシ設定に関する破壊的変更などが記載されています。旧版からの更新では、Zammad 本体以外の変更が必要になる場合があるため、経由する各版のリリースノートを確認します(Zammad 7.2 リリースノート)。

あわせて、公式手順に沿ったバックアップと、復元できることを確認します(パッケージ版 / Docker 版)。

手順
導入方式に応じて更新する

パッケージ版は、Zammad を停止してバックアップを取得したうえで、ディストリビューションごとの手順で更新します。Ubuntu / Debian の公式手順では、データベースサーバーの更新と同時に Zammad が更新されることを避けるため、Zammad を一時的に更新対象から外してから他のパッケージを更新します。

sudo systemctl stop zammad
sudo apt update
sudo apt-mark hold zammad
sudo apt upgrade
sudo apt-mark unhold zammad
sudo apt upgrade

パッケージに含まれる保守スクリプトの出力は、必ず確認します。公式ドキュメントは、この出力を無視すると更新が不完全になり、データ破損などにつながる可能性があると注意しています。メジャーバージョンを経由する必要がある場合は、版の指定方法を公式ドキュメントで確認してから実施してください。

Docker Compose 版は、zammad-docker-compose のディレクトリで次のように更新します。特定の版に更新する場合は、VERSION 環境変数で版を指定します。

cd zammad-docker-compose
git pull
docker compose pull
docker compose up -d

7.2 への更新後は、リリースノートの指示に従って Elasticsearch の再インデックスを実行します。パッケージ版は zammad run rake zammad:searchindex:rebuild、Docker Compose 版は docker compose run --rm zammad-railsserver bundle exec rake zammad:searchindex:rebuild です。

手順
稼働を確認する

ログインできること、「Version」画面の版が更新後の版になっていること、メールの送受信や連携が動作していることを確認します。自己ホスト環境では、管理画面の Monitoring で稼働状態を確認できます(Zammad Admin Documentation: Monitoring)。

Monitoring の healthy は、バックグラウンド処理やチャネルの稼働状態を示すものです。侵害されていないことを判定するものではありません。

更新後の侵害確認と修正状況の追跡

更新は今後の侵入経路を減らしますが、更新前に受けた侵害を取り除くものではありません。NCSC は、両 CVE が 2026 年 9 月 21 日から悪用されているとしています。保全したログを調べ、調査範囲と結果、未確認の範囲を記録します。

保全したログで確認する範囲

取得できたログに応じて、次の観点で確認します。調査期間は、少なくとも 9 月 21 日以降を対象とし、ログが残っている範囲でさかのぼることを推奨します。

  • Zammad のアプリケーションログでは、エラー出力にセッション情報が含まれていないかを確認します(DIVD が CVE-2026-102489 の IoC として検査対象にしている観点です)。
  • リバースプロキシのログでは、見覚えのない送信元からのアクセスや、管理画面・API への想定外のアクセスを確認します。
  • OS 上では、zammad ユーザーによる想定外のシェル起動、新しく作成された root 所有のファイル、cron や SSH 鍵の追加を確認します。
  • ネットワークログでは、Zammad サーバーからの想定外の外向き通信を確認します。

OS とネットワークの観点は、権限昇格を伴う侵害に対する一般的な確認項目であり、CVE-2026-102490 の公式な IoC ではありません。10 月 4 日時点で、ベンダーや DIVD による CVE-2026-102490 の IoC は確認できませんでした。

DIVD のログ検査スクリプトの範囲と注意点

DIVD は、案件ページ DIVD-2026-00015 でログ検査スクリプト(cve-2026-102489_ioc_check_script_v2.sh)を公開しています。入手は案件ページのリンクから行い、実行前に内容を確認してください。公開されている内容から確認できた仕様は次のとおりです。

  • 対象は CVE-2026-102489 の IoC で、エラー出力に含まれるセッション情報(Cookie など)を検索します。CVE-2026-102490 の IoC を対象としたものではありません。
  • 引数を省略した場合は /var/log/zammad と /var/log/nginx を対象とし、gzip 圧縮されたログも検索します。
  • ディレクトリを指定した場合は、production.log、railsserver.log、websocket.log、scheduler.log、nginx.log、access.log、error.log で始まるファイルだけを対象にします。docker compose logs で保存したファイルなど別名のログは、ファイルパスを直接指定します。
  • 検出時は、該当行と露出した Cookie の値を画面に表示します。出力は機密情報として扱い、共有する際は値を伏せます。
  • 検索時の読み取りエラーは表示されず、ログが見つからない場合も終了コード 0 を返します。指定したログを読み取れる権限で実行し、出力される対象ファイル数と警告も確認してください。終了コード 0 だけで検査が成功したと判断しないことが重要です。

保全したログを展開したディレクトリやファイルを指定する場合は、次のように実行します。

sh cve-2026-102489_ioc_check_script_v2.sh /path/to/preserved/logs /path/to/zammad-compose-logs.log

スクリプト自身も、指標が見つからなかった場合に追加の調査を促しています。

参考: DIVD ログ検査スクリプト(cve-2026-102489_ioc_check_script_v2.sh)
“please investigate other signs of abuse like unfamiliar processes and files”
(見覚えのないプロセスやファイルなど、その他の悪用の兆候も調査してください。)
https://csirt.divd.nl/downloads/DIVD-2026-00015/cve-2026-102489_ioc_check_script_v2.sh

スクリプトで検出がない場合、ログが残っていない場合、調査対象期間が短い場合は、いずれも侵害されていないことの証明にはなりません。調査した範囲と期間を記録しておくことをおすすめします。

痕跡が見つかった場合の初動

不審な痕跡が見つかった場合は、サーバーをネットワークから隔離し、証拠を保全したうえで、社内 CSIRT や専門事業者へ相談します。そのうえで、Zammad が保持・接続している認証情報の影響を評価します。対象には、メールチャネル(IMAP / SMTP、Microsoft 365、Google)の認証情報、LDAP などの連携設定、API トークン、Webhook の接続先、データベースの資格情報、サーバーの SSH 鍵が含まれます。

秘密情報の変更は、侵害の疑いがあるサーバーとは別の安全な環境から行います。これらは一般的なインシデント対応の初動であり、ベンダーや DIVD が公表した手順ではありません。

対応完了を 4 つに分けて記録する

「更新が終わったので対応完了」とまとめてしまうと、未確定の項目が追跡されなくなります。次の 4 項目を別々に記録することを推奨します。

記録項目完了の判断基準10 月 4 日時点の扱い
稼働復旧ログイン、メール送受信、連携、Monitoring の状態を確認業務稼働の確認のみ。安全性の判定ではない
推奨版への更新ベンダーが推奨する 7.2.0 以降へ更新し、「Version」画面で確認完了できる
CVE-2026-102490 の修正照合ベンダーが修正版と影響範囲を公表し、稼働版が修正済みであることを確認未完了。GitHub Security Advisories を継続して確認
侵害調査保全したログの調査範囲、期間、結果、未調査の範囲を記録痕跡がなくても未侵害の証明ではない旨を併記

推奨版への更新が完了しても、CVE-2026-102490 の修正照合が終わるまでは、未完了の項目として追跡を継続してください。修正版や IoC が公表された場合は、保全したログをその情報で再確認します。

まとめ

CVE-2026-102490 は、侵入後に root 権限を得るための権限昇格であり、侵入経路となる CVE-2026-102489 とともに実悪用が報告されています。7.2.0 への更新は推奨対応ですが、10 月 4 日時点では本 CVE の修正確認とは別に扱い、ログ保全と侵害調査、修正情報の追跡を並行して進めることが重要です。

  • CVE-2026-102490 は zammad ユーザーから root への権限昇格です。
  • 単独では遠隔悪用できず、OS 上の zammad ユーザー権限を得ていることが前提です。
  • 影響バージョンは CVE レコードの影響範囲欄と説明文で一致していません。
  • 7.2.0 への更新は推奨対応ですが、本 CVE の修正確認とは別に扱います。
  • 更新の前にアプリケーションとネットワークのログを保全します。
  • DIVD のスクリプトは CVE-2026-102489 の IoC 確認用です。
  • 修正版の公表は GitHub の Security Advisories で追跡します。

以上、最後までお読みいただきありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

関西を拠点に活動する、現役インフラエンジニア。経験20年超。

大手通信キャリアにて、中〜大規模インフラ(ネットワーク・サーバ・クラウド・セキュリティ)の設計・構築およびプロジェクトマネジメントに従事。現場で直面した技術課題への対処や、最新の脆弱性情報への実務対応を、一次情報として発信しています。

保有資格
CCIE Lifetime Emeritus(取得から20年以上)/ VCAP-DCA / Azure Solutions Architect Expert

▶ 運営者プロフィール(詳細)

目次