BBB bit2byte blog

bit2byte

【WordPress】 Advanced Custom Fields(ACF) プラグイン + Repeater Fieldアドオンの利用ケースから脆弱性対応でACF PROにアップデートした件

2024.10.03.木

bit2byte

Engineer

こんにちは!しばしば話題になるWordpressプラグインの脆弱性問題の投稿です。
今回はAdvancedCustom Fields(ACF)プラグインのアプデ対応がありました。
ただアプデするだけじゃない課題があったのでご紹介します。

前段はACFの説明と今回の脆弱性勧告についてのお話ですので、飛ばして読まれたい方はこちらからどうぞ!

2024年9月 脆弱性勧告

ACFにクロスサイトスクリプティングの脆弱性が存在し、脆弱性対応が行われた最新版にアップデートすべきであるとJVNから勧告が出ました(2024年9月)
勧告元:
https://jvn.jp/jp/JVN67963942/
https://jvndb.jvn.jp/ja/contents/2024/JVNDB-2024-000093.html

対象

Advanced Custom Fields 6.3.5およびそれ以前のバージョン
Advanced Custom Fields Pro 6.3.5およびそれ以前のバージョン

対策

開発者が提供する情報をもとに、最新版へアップデートしてください。
開発者は、本脆弱性を修正した次のバージョンをリリースしています。
・Advanced Custom Fields 6.3.6
・Advanced Custom Fields Pro 6.3.6

要は全てのバージョンで最新版にアップデートをするようにとのことです。

脆弱性って実際どうなっちゃうの

JVN iPEDIA より引用

対応を行わず脆弱性のあるバージョンのACFを使い続けた場合、悪意のあるユーザーがスクリプトを含むリクエストを送信すると、コンテンツに含まれるスクリプトが実行されてしまう場合がある、というものです。

CVSS v3 によるこの脆弱性の関する深刻度は5.4 (警告) [IPA値]。
CVSSスコアは0から10の範囲で、スコアが高いほど脆弱性の深刻度が増します。
深刻度7や8の事例には及びませんが、5.0以上は潜在的なリスクがあるとされ、対応しておいた方が良いです。
(弊社では該当のプラグインを利用するお客様にそれぞれ情報のご案内と対応をご提案しました)

ACFとは

ACFは、WordPressのプラグインで、カスタムフィールドを簡単に作成・管理するためのツールです。200万以上のサイトで利用されています。
https://ja.wordpress.org/plugins/advanced-custom-fields/



このプラグインを使用することで、投稿やページ、カスタム投稿タイプに独自の入力フィールドを追加でき、サイトの内容をより柔軟にカスタマイズすることが可能になります。


このようなプラグインを用いずにwordpressテーマのfunctions.phpにいろいろとコードを書き込むことでもカスタムフィールドを作成することは可能ですが、特別な使い方をするわけでなければ、ACFは遥かに実装を容易にします。

今回のケース:アドオン「Repeater Field」が使用されてるサイト

ACFはWordpress黎明期から存在してきたプラグインですが、Repeater Field というACFの拡張プラグイン(アドオン)があります。
こちらからダウンロードすることができます。

記事にカスタムフィールドで複数の店舗を登録したい場合とか、複数の商品を登録したい場合など、項目を増減させたい場合ってありますよね。ACFのみでは投稿欄で項目を追加削除させることはできません。

このような時、Repeater Fieldアドオンを使うとフィールドを点数に制限なく追加削除させることができます。いくらでも情報が登録できる!しかも、導入無料。
現在のACF6系になってからはこのアドオンは使えなくなり、「Repeater(繰り返し)」という名称でACFの有償版ACF Proに取り込まれました。
有償化となったあとも、ACFの5系(や6系では6.1.6まで)では「Repeater Field」が継続して利用ができ、ACFは脆弱性アップデートも5系も6系と並行して継続されてました。そのため今でも利用されているサイトが少なくないのではと思います。弊社の案件でもいくつかのサイトでRepeater Fieldの導入がありました。

今回、ACF5系、6.1系の脆弱性対応版はリリースなし

今回のACFアップデートは6.3系のみで、それ以下は事実上終了となった模様です。
したがってRepeater Fieldアドオンを安全に継続利用する選択肢は無くなったわけです。

これまでRepeater Fieldを使っていたサイトは以下の対応が迫られます。

  1. ACF無料版で可能な作りに改修する
  2. Pro版にする(Repeater Field からPro版のRepeaterに移行する)

1はそれなりに改修費用がかかりますが、2は年間49ドルのライセンス代で済み、2の方が安価で済むだろうというサイトがほとんどかと思います。

情報が無い

ただし、Repeater Field から ACF Proの有償Repeaterに移行したよ!うまくいったよ!という記事が見つからなかったため、Pro版にしたとて改修なくRepeater Fieldで作ったフィールドがそのまま使えるかどうかわからない。後者の提案ができませんでした。

ここは実際にACF最新版への移行と、ACF Pro有償版への移行をやってみることにしました。

検証 その1
ACF5系+Repeater Field の組み合わせ → ACF6系最新版+Repeater Fieldへの移行でそのまま使えちゃわないか

アップデートはプラグイン一覧から更新ボタンを押すだけです。
Repeater Fieldはプラグイン一覧に残っていました。
サイト側はRepeater Fieldを使った繰り返しフィールド表示欄は正常に表示されました。
投稿欄でもRepeater Fieldで作った繰り返しフィールドがこれまでどおり使える!!
ですが、ACF管理画面からRepeater Fieldを使って作ったフィールドは南京錠のアイコンとともに編集できなくなってしまいました。

繰り返しフィールドの編集がロックされ、PROいかがですか!のバナーが出る

投稿欄でもサイト側でも問題なく使えるってことは新規改修を行わなければこれもアリ…?という結論とも言えますが、このハック的ともいえる状態でいつまで利用できるかはわからず、お客様にご提案はちょっとできません。

検証 その2
ACF Pro最新版への移行。そしてPro版のRepeaterでRepeater Fieldで作成したカスタムフィールドがそのまま使えるのか

アップデートしたACFプラグイン管理画面からPro版への移行をクリックするとACF Pro版のサイトへ遷移しました。

ACF Proの選択画面

ACF Pro版のサイトからPricing > Personal をクリックして $49 / Yr のライセンス契約をします。
(隣の10ライセンス、無制限版もなかなかのコスパ)
英語の入力欄ですが住所などは日本語でも問題なかったです。決済はクレジットカード。

ライセンスコードが発行されました。

ライセンス一覧画面

ACFにライセンスコードを入れる所がない…

ACFプラグインの管理画面に戻ります。あれ、ACFプラグインの管理画面にライセンスコードを入れる場所がない。
ないんです。ACFとACF Proはプラグイン自体が違うということがわかりました。

ACF Proをインストール

先ほどのライセンス画面からPro版をダウンロードしてインストール。ACF通常版はアンインストールします(自動でされたのかも)。
ACF Proの方にはライセンスコードを入れる欄がありました。

ライセンスコードを入れると認証されました。

ではでは、Repeater Field で作った欄はどうなったでしょうか。。

結果:Pro版で解決

はい!Pro版の限定機能Repeaterで、Repeater Field で作った欄が問題なく編集可能になりました。そのまま改修なく利用することができます!

南京錠マークは外れ、編集可能に


ちなみにPro版のRepeaterは何かすごいのかと思ったら違いは「ページ送り」という管理機能が付いた、だけのようです。UIも刷新されてますが、他はRepeaterには目新しい機能追加は無いのかも。

ページ送りがついた


Repeaterの他には、無料版ではロックされているフィールドタイプ「柔軟なコンテンツ」「複製」もPro版では利用可能です。有償機能なぐらいだからきっと便利なんでしょう、追って利用してみたいと思います。

ということで、Repeter Field で作らてれたサイトを継続するためには ACF Proに移行すればOK!

作業前はバックアップを行いましょう

工程では省きましたが、アップデート前には適切にバックアップを取る必要があり、万一の場合はバックアップから作業前の状態を復元できるスキルがあると良いでしょう。作業中はメンテナンス中表示にすることができればさらに安心ですね。

\ビットツーバイトにご相談ください/

ビットツーバイトでは、同様のアップデート作業のスポット対応や、管理者のいなくなってしまっているWordpressサイトのメンテナンス、リニューアルまで承っております。

WordPress以外にも Movable Type やPower CMS 、EC-CUBE、Shopifyを使ったサイト構築も対応可能です。
webinfo@bit2byte.jp からお気軽にご相談ください。

bit2byte管理者

多くの仲間と協力しながら、広くWebサイト・Webシステム・アプリ開発等の業界最先端の技術を提供し、世界中により良いサービスを発信していきたいと思っております。

Recommend