WordPressテーマPrintyに重大な脆弱性、修正版は未確認
WordPressのテーマ「Printy」に、外部から渡されたデータの扱いに起因するPHP Object Injectionの脆弱性が見つかりました。Printyを使っているサイトの運用者は、版の確認から始めてください。修正版の情報が出るまでは、テーマの入れ替えか削除も視野に入れる必要があります。
急ぎ度: 早めに
CVSS v3が9.8と最高水準で、悪用の確認(KEV掲載)は見えていませんが、修正版の有無も分かっていないため、早めの確認が要ります。
関係があるか
Printyテーマを有効にしている、または管理画面にインストールしたままのWordPressサイトが対象です。Printyを親テーマにした子テーマを使うサイトも含みます。
| 製品 | 影響を受ける版 | 直った版 |
|---|---|---|
| Printy(ThemeREX製のWordPressテーマ) | 1.13.0以下 | 現時点で修正版の版番号は確認できていません |
確かめ方
- 1WordPressの管理画面で「外観」の「テーマ」を開き、Printyが一覧にあるか、版がいくつかを見る。有効でないテーマも対象になりうるので、一覧全体を確認する。
- 2複数サイトを管理している場合は、サーバー上でWP-CLIを使って、テーマ名と版を一括で確認する。
- 3子テーマを使っている場合は、子テーマのstyle.cssにあるTemplateの行を見て、親がprintyになっていないか確認する。
何が起きたか
ThemeRExが提供するWordPressテーマPrintyに、PHP Object Injectionの脆弱性が見つかりました。外部から届いたデータを十分に検証しないままPHPのオブジェクトへ復元してしまう不具合で、分類はCWE-502です。
Patchstackが2026年10月29日に情報を公開しました。CVSS v3は9.8で、機密性・完全性・可用性のすべてに高い影響があると評価されています。
PHP Object Injection自体は、オブジェクトを復元できるだけの不具合です。実際にどこまでの被害になるかは、サイトに入っているコードの組み合わせで変わります。
攻撃の流れ
-
1
対象サイトの特定
Printyを使っているWordPressサイトを、外部から探し出す。
-
2
細工データの送信
テーマが受け取る入力に、細工したシリアライズ済みデータを渡す。
-
3
オブジェクトの復元
テーマが入力を検証せずPHPのオブジェクトに戻し、攻撃者の意図した状態が作られる。
-
4
サイトへの影響
サイトに入っているコードの組み合わせによって、情報の閲覧、改ざん、停止などが起こりうる。
どう悪用されるか
認証は不要で、ネットワーク越しに悪用できます。攻撃の複雑さは低く、利用者の操作も要りません。Printyが入ったサイトがインターネットに公開されていれば、それだけで条件は整います。
悪用されたときの被害は、CVSSの評価では機密性・完全性・可用性のすべてが高いとされています。ただ、PHP Object Injectionでは、サイトに入っているテーマやプラグインのコードによって、実際に起きることが変わります。ここまでの被害になるかどうかは、サイトごとに違います。
今すぐやること
-
1
Printyの有無と版を確認する
管理画面か、WP-CLIで、Printyがどのサイトに入っているかを洗い出します。有効でないテーマも一覧に含めて確認してください。
wp theme list --fields=name,status,version -
2
修正版の公開を確認する
ThemeRExの配布元と、Patchstackの脆弱性ページで、修正版が出ているかを確認します。版番号と配布経路は、そこで案内されたものに従ってください。
-
3
修正版があれば更新する
更新前にファイルとデータベースのバックアップを取り、まずステージング環境で表示を確認してから本番に反映します。子テーマを使っている場合は、親テーマのPrintyを更新します。
-
4
修正版がなければ回避策に進む
修正版が出ていない、または更新できない場合は、回避策の欄にあるとおり、使用の中止を検討します。
-
5
不審な痕跡を確認する
公開日以降について、Webサーバーのアクセスログに見慣れないリクエストがないか、テーマやアップロード用ディレクトリに身に覚えのないファイルがないか、管理者アカウントが増えていないかを見ておきます。
すぐ更新できないとき
修正版を当てられないときは、Printyを使わない状態にするのが最も確実です。別のテーマに切り替えたうえで、Printyをサーバーから削除してください。無効にしただけでは、テーマのファイルがサーバーに残るため、十分とは言い切れません。
すぐに切り替えられない場合は、サイト手前のWAFで、Printyのパスに届く通信を制限できるか検討します。ただし、効果はWAFの製品や設定で変わり、根本的な対策にはなりません。
背景
WordPressのテーマは、見た目を決めるだけの部品ではありません。PHPのコードとしてWordPress本体と同じ権限で動くため、テーマの脆弱性はそのままサイト全体の脆弱性になります。しかも、WordPress本体の自動更新とは別管理で、テーマの自動更新は設定を有効にしていないと働きません。入れたまま更新が止まっているテーマが残りやすい場所です。
PHP Object Injectionは、PHPのunserializeに外部由来のデータを渡すと起こる種類の脆弱性として、以前から知られています。PHPの公式マニュアルも、信頼できない入力をunserializeに渡さないよう注意しています。単独では影響が限られても、同じサイトにある別のコードと組み合わさると被害が広がるのが、この種類の特徴です。
よくある質問
Q.WordPress本体とプラグインを最新にしていれば、影響はありませんか。
Q.公開から日が浅いですが、すでに攻撃が始まっていますか。
まだ分かっていないこと
- 修正版の版番号と、配布が始まっているかどうか。ThemeRExの案内とPatchstackのページで確認してください。
- 実際の攻撃で悪用されたかどうか。
- Printyが入った標準的な構成で、どこまでの被害に至るか。サイトごとの条件による部分が大きく、詳細は公開されていません。
この記事は、取得元の公開情報をもとに生成 AI で作成しています。誤りを含むことがあります。対応を決める前に、下の原文と参照先を確認してください。
影響パッケージ
| 種類 | パッケージ | 影響を受ける版 | 直った版 |
|---|---|---|---|
| ThemeREX | Printy |
1.13.0 以前 |
— |
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
Unauthenticated PHP Object Injection in Printy <= 1.13.0 versions.
出典: CVE.org (CVE Program・cvelistV5) NVD