Adobe Commerce / Magento Open Source 2.4.6-p2 / 2.4.5-p4 / 2.4.4-p5がリリースされました

リリーススケジュール通り、Adobe CommerceとMagento Open Sourceに対するセキュリティアップデートが公開されました。
今回のセキュリティアップデートについては、Adobe Security Bulletinで概要が開示されています。

今回はこのセキュリティアップデートについて詳しく解説したいと思います。

リリースされたバージョン

今回リリースされたバージョンは以下の通りとなっています。
バージョン番号はAdobe CommerceとMagento Open Sourceで共通です。

また、Adobe Commerce利用企業で、延長サポートを契約されている場合は以下のバージョンが特例として提供されているようです。

  • 2.4.3-ext-4
  • 2.4.2-ext-4
  • 2.4.1-ext-4
  • 2.4.0-ext-4
  • 2.3.7-p4-ext-4

延長サポートを契約されている場合は直接Adobeのサポートにお問い合わせください。本記事では2.4.4以降について解説します。

修正された脆弱性

Adobe Security Bulletinによると、今回のリリースでは3つの脆弱性が修正されたとあります。
ではこの内容について確認していきましょう。以下のとおりです。

CVE番号 CVSSスコア 脆弱性の概要
CVE-2023-38207 5.3 XMLインジェクション
CVE-2023-38208 9.1 OSコマンドインジェクション
CVE-2023-38209 6.5 不適切な権限管理

 

XMLインジェクション

XMLファイルを各種設定・定義ファイルとして多用するMagentoフレームワークではよく見られる脆弱性です。
多くの場合、

  • XMLファイルそのものの定義内容が不適切
  • XSDやXML構文評価処理が不適切

であることによって引き起こされます。

過去には

  • CMSページ
  • 商品ページ
  • カテゴリページ

などにおけるカスタムレイアウトアップデートXMLが脆弱性を引き起こすとして、仕様変更されています。

今回は特に入力値チェックでのHTML値検査が強化されています。

OSコマンドインジェクション

OSコマンドインジェクションも設定値やパラメータの多いMagentoフレームワークではよく報告される脆弱性です。
今回の脆弱性においては、

  • 攻撃のために認証が必要
  • 攻撃のために管理者権限が必要

となっています。
修正内容的にはXMLインジェクションと同じコードが利用されているものと思われます。

不適切な権限管理

コードの差分を見る限りでは、この脆弱性についても前2つの脆弱性の対応と同じものが適用されているように思われます。
ただし、こちらの脆弱性については

  • 攻撃のために認証が必要
  • 攻撃のために管理者権限は不要

となっています。おそらくはHTMLやXMLデータを介した権限チェック回避であると思われます。

その他の変更

脆弱性ではありませんが、マーケットプレイスのURLが変更になっています。

2.4.6-p2限定の変更

2.4.6-p1と2.4.6-p2の差分を見る限りにおいては、2.4.6-p2限定で以下の修正が行われています。

  • ACSD-51892の適用
  • nginx用サンプル設定ファイルの変更

ACSD-51892とは

Quality Patchの一つである、ACSD-51892は、設定ファイルが複数回読み込まれることに起因するパフォーマンス劣化を防ぐためのものです。
この修正は2.4.6系のみが対象となっており、2.4.5および2.4.4系は対象外となっています。

nginx用サンプル設定ファイルの変更

さほど大きな変更ではありませんが、PHP-FPMの接続先を指定するパラメータが、

php-fpm:9000

から

fastcgi_backend

に変更されています。

fastcgi_backend自体はサンプル設定ファイルの先頭で例示されているものなので、こちらの値を使用するように変わっただけ、とも言えます。

jQuery-UIのアップデート

Adobe Commerce / Magento Open Sourceそのものの脆弱性ではありませんが、バンドルされているjQuery-UIライブラリが更新されています。
こちらはCVE-2022-31160に対する修正となっています。

アップデートの適用方法

今回のアップデートを適用する場合は、

  1. composer.jsonファイルが指定しているAdobe Commerce / Magento Open Sourceのパッケージバージョンを変更する
  2. composer updateを実行する
  3. ひと通りの動作試験を行う
  4. 本番反映を行う

という流れで行います。

カスタマイズ度合いが少ない場合はスムーズにアップデートが可能ですが、重度のカスタマイズを行っている場合はテスト範囲と作業が膨大になる可能性があります。