以前作成したWebサイトで、BaserCMS 1.6.15 のまま利用しているサイトがあるのだけれど、2.X系にバージョンアップするためにはテンプレートの再調整・プラグインの再カスタマイズが必要なこと、管理画面のインターフェイスが大きく変わってしまったために、トレーニングコストが馬鹿にならないことなどから、アップデートを控えていた。
幸いBaserCMS自体には大きな脆弱性も発見されず( この脆弱性 にはファイルパッチで対応できたし)、運用できていたのだが、BaserCMSが依存しているPHPフレームワークであるCakePHPに、今年4月末 Paginatorコンポーネントに大きな脆弱性 が発見された。この対処を行った際の内容をメモしておく。
CakePHPフレームワークを利用したことがなかったので、フレームワークだけのバージョンアップとかどうするんだろうなーと思っていたが、色々調べて試したところ、どうやら cake ディレクトリの中身を上書きすれば大丈夫っぽかったので、BaserCMSに利用されているファイル・ディレクトリを選んで上書きした。
BaserCMS 1.6.15で利用されているCakePHPは1.2.10なので、最新版の1.2.12を以下からダウンロードする。
アーカイブの中から、cake フォルダのみ解凍し、その中から以下のファイル・ディレクトリを上書きアップロードする。(libs ディレクトリだけで大丈夫という情報もあったけど、念のために)
これでCakePHPは1.2.12となり、BaserCMSの管理画面から、システム設定‐環境情報 とたどることで、アップデートされているか確認できるようになる。(下記画像参照)
自分の環境ではこの方法で問題は起こっていませんが、全ての環境で問題が出ないとは限らないので、事前のバックアップやテストは確実に行ってください。また、この方法で脆弱性に正しく対応できているかどうかは保証できませんので、対応として間違っているとか、もっといい方法があるという情報があれば、ぜひコメント等より教えてください。