Movable Typeにコードインジェクションの脆弱性、8.8.7などで修正

Movable Typeにコードインジェクションの脆弱性、8.8.7などで修正 ITニュース

Movable Type のダイナミックパブリッシング機能に、コードインジェクション(CWE-94)の脆弱性があると公開されました。JVN が2026年11月11日に JVN#11786640(CVE-2026-117687)として公開し、同じ日の11時(日本時間)に、シックス・アパートが修正版の Movable Type 8.8.7 / 8.0.14 と Movable Type Premium 2.19 の提供開始を告知しています。Movable Type でサイトを運営している企業の担当者や、個人無償版でブログを書いている人に関係する話です。

コードインジェクションの脆弱性、まずは版の確認から

結論から言うと、影響を受ける版の Movable Type を、ソフトウェア版・AMI版・個人無償版で使っている人は、修正版へ早めに更新するのがおすすめです。シックス・アパートも、セキュリティに関する修正のため、利用者に確認とアップデートを求めています(シックス・アパートの告知)。

一方で、Movable Type 8(Premium を含む)のクラウド版は、シックス・アパートがすでにメンテナンスを実施し、すべての環境でアップデートが完了しています。自動アップデートを無効にしている環境も含めて実施済みです。

影響を受ける版と修正版

JVN が示す対象と、修正版の対応は次のとおりです。

系統 影響を受ける版 修正版
Movable Type 8.8.x系(Advanced を含む) 8.8.6 およびそれ以前 8.8.7
Movable Type 8.0.x系(Advanced を含む) 8.0.13 およびそれ以前 8.0.14
Movable Type Premium 2.x系(Advanced Edition を含む) 2.18 およびそれ以前 2.19(8.8.7 ベース / 8.0.14 ベース)
Movable Type(Advanced)8.4.x系、Movable Type 7(どちらもサポート終了済み) 影響を受ける 今回の発表には修正版の記載なし
Movable Type 9 影響を受けない ―

Movable Type 8.0系は2026年11月5日に EOL(サポート終了)となって間もないため、修正版の 8.0.14 を提供した、とシックス・アパートは説明しています。

コードインジェクションで何が起こり得るか

JVN によると、ダイナミックパブリッシング機能で、攻撃者に細工されたリクエストを送信されると、Movable Type が動作するサーバ上で任意の PHP コードが実行される可能性があります。

深刻度は、CVSS v3.0 の基本値が 7.3、CVSS v4.0 の基本値が 6.9 です。v3.0 の評価(AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L)では、ネットワーク経由で、攻撃に特権もユーザーの操作も要らないとされています。

なお、ダイナミックパブリッシングを使わず静的な出力だけで運用しているサイトが影響を受けるかどうかと、実際に悪用されているかどうかは、JVN とシックス・アパートの今回の発表には書かれていません。静的出力だから関係ない、と決めつけずに、版を確かめて更新しておくのが無難です。

コードインジェクション対策で変わる表示と動作

3つの修正版は、どれもセキュリティ上の修正だけです。シックス・アパートの説明では、環境変数 DynamicTemplateAllowPHP を 1 に設定している場合でも、次のものについて、テンプレート処理結果に含まれる PHP コードを実行しないように修正されました。

  • MTInclude・MTIncludeBlock・MTWidgetSet・MTWidgetManager・MTFileTemplate・MTUserSessionCookieDomain・MTUserSessionCookiePath の7つのタグ
  • mteval モディファイア
  • ダイナミックパブリッシングのエラーテンプレート(404 など)

この修正で Movable Type 9 と同じ挙動になるため、ダイナミックパブリッシングでのウェブサイトの表示や動作が変わる可能性があります。テンプレートに直接記述された PHP コードは、修正前と同様に引き続き実行されます。

例外もあります。サイトのインクルード方式が PHP で、MTInclude または MTIncludeBlock に ssi="1" が指定されている場合、または読み込む対象テンプレートのサーバーサイドインクルード設定(include_with_ssi)が有効な場合は、MTInclude・MTIncludeBlock・MTWidgetSet・MTWidgetManager による読み込みで、テンプレート処理結果に含まれる PHP コードが実行されます(MTWidgetSet・MTWidgetManager では、読み込まれる各ウィジェットの設定が対象)。

注意したいのは、Movable Type 8.8.7 では、DynamicTemplateAllowPHP を 0 にしている場合も、この例外に該当すると修正後は PHP コードが実行されるようになる点です(修正前は実行されていませんでした)。

あわせて JVN には、デザインテンプレートに記載された PHP コードの実行を抑制するため、DynamicTemplateAllowPHP に 0 を設定することが開発者により推奨されている、とあります。

提供形態ごとの更新方法

修正版の提供形態は、8.8.7 がクラウド版・ソフトウェア版・AMI版、8.0.14 がソフトウェア版・AMI版です。Premium 2.19 は、8.8.7 ベースがクラウド版・ソフトウェア版、8.0.14 ベースがソフトウェア版です。

提供形態 更新のしかた
クラウド版 Movable Type 8(Premium を含む)は、すべての環境でアップデート完了済み
ソフトウェア版 ライセンス保有者が、シックス・アパート ユーザーサイトからダウンロードする。年間メンテナンスの期限が切れている場合は、必要な期間分の年間メンテナンスか、新規ライセンスの購入が必要
AMI版 マニュアルの手順で更新する(AWS Marketplace には、AWS の審査後に公開)
個人無償版 個人無償版ダウンロードフォームから再度申し込み、改めてダウンロードする

更新でやっておきたいこと

おすすめの順に並べます。

  1. 使っている版と提供形態を確かめる: 上の表で、コードインジェクションの影響を受ける版かどうかと、自分で更新する形態かどうかを見ます
  2. ソフトウェア版は、データベースのバックアップを取る: シックス・アパートは、ソフトウェア版のアップデートを行うときのデータベースのバックアップ取得を、欠かせない手順として案内しています
  3. ソフトウェア版は、別ディレクトリへインストールする: ソフトウェア版のアップデートでは、上書きではなく、別ディレクトリへインストールする形が強く推奨されています(AMI版はマニュアルの手順で更新、個人無償版は再度申し込んで改めてダウンロード)
  4. ダイナミックパブリッシングのページを確かめる: 上の7つのタグ、mteval モディファイア、エラーテンプレートを使っているページの表示や動作が変わっていないかを見ます
  5. DynamicTemplateAllowPHP と SSI の設定を見直す: 0 の設定が推奨されています。8.8.7 では、0 でも例外の条件に該当すると PHP コードが実行されるようになるので、ssi="1" や include_with_ssi の設定も確かめます
  6. 8.4.x系・Movable Type 7 の移行を考える: どちらもサポート終了済みで影響を受けます。今回の発表に修正版の記載はないため、影響を受けない Movable Type 9 への移行を検討しておきたいところです

現場で起きそうなこと

これは実際にあった話ではなく、ありがちな想定です。

長年いろいろな人が手を入れてきたテンプレートで、ウィジェットやインクルードの中に PHP を書いていたことを誰も覚えていない、というケースです。修正版で挙動が Movable Type 9 と同じになると、更新したあとで、あるページの一部だけ表示が変わる、ということが起こり得ます。秘伝のタレのように継ぎ足してきたテンプレートほど、ソフトウェア版ならデータベースのバックアップを取ってから更新し、更新の後に味見(表示の確認)をするのが安全です。

ほかの技術ネタは、技術ネタの記事一覧からどうぞ。

2026年11月11日時点の、JVN(11月11日公開)とシックス・アパート(11月11日告知)の情報にもとづきます。

ITもごはんも、腹八分目が長続きのコツ!

コメント