Adobe Commerce / Magento Open Source 2.4.6-p1, 2.4.5-p3, 2.4.4-p4がリリースされました
この記事は公開から 1年以上が経過しています。現在の最新情報との整合性については弊社では一切の責任を負いかねます。
リリース計画で予定されていた通り、Magento Open Source / Adobe Commerceのセキュリティアップデートリリースが行われました。
今回リリースされたバージョンとしては、
- 2.4.6-p1
- 2.4.5-p3
- 2.4.4-p4
となっています。いずれもセキュリティアップデート版となっていますので、新機能の追加や大きな仕様変更はありません。
同一バージョン内でのアップデート(例: 2.4.4-p3からp4へのアップデート)は比較的容易に行えそうです。
今回のセキュリティリリースでの変更点
今回のセキュリティリリースでの変更点を確認してみましょう。
まずは、公式のSecurity Bulletinです。
Adobe Security Bulletinの内容
公式のSecurity Bulletinをみると、12件の脆弱性が修正されたことになっています。
内訳としては、
- Critical(致命的)が2件
- Important(重要)が5件
- Moderate(普通)が5件
となっています。
特にCriticalに分類されているものについては、
- クロス・サイト・スクリプティング
- 不正な認証
がそれぞれ1件ずつとなっており、特に「不正な認証(CWE-863)」については「管理者権限を要さない」となっています。
この「CWE-863」自体がこれ以外に3つの脆弱性を含んでいるため、今回のアップデートでは最も深刻度が高いものであると言えます。
コードレベルでの修正箇所
コードの差分を確認する限りでは、今回のアップデートでは次のような変更が含まれています。
機能の仕様変更
- ブロックキャッシュの暗号化方式変更(sha1からsha256へ)
- 管理画面の商品作成機能におけるパラメータチェック強化 (regexValidator追加による商品種別チェック追加)
- CSV商品インポート機能におけるNULLバイト文字の除去(UTF-8で0000 - 1F7Fの範囲にあるものを除去)
- ゲストチェックアウト時のメールアドレス存在チェックオン・オフ
- ゲストチェックアウト時の住所チェックの強化
- 管理画面の注文作成時におけるブロック名の文字列チェック強化
ライブラリの更新
- jQuery.Validateのバージョン変更(1.19.3 から 1.19.5へ)
- jQUery.Uiのバージョン変更 (1.13.1 から 1.13.2へ)
- moment.jsのバージョン変更 (2.29.1 から 2.29.4へ)
インストール環境に関する変更
- Varnish 7.3サポート追加
- MariaDBの対象バージョン指定追加(10.6.11、10.4.27)
- RabbitMQ 3.11サポート追加
「ゲストチェックアウト時のメールアドレス存在チェックオン・オフ」について
今回のアップデートで新しく追加された唯一の機能がこの機能です。
これまでのMagento2系では、未ログイン状態で購入画面に進んだ際に「入力したメールアドレスに紐づく会員データがあるか」を自動チェックする機能がありました。
この機能は一見便利なように見えますが、
- 知人のメールアドレスを類推して入力
- メールアドレスの総当り攻撃
といった行為にさらされる危険性がありました。
今回のアップデートではこの機能を無効化できるオプションが追加されました。当然のことながら、オフにすると未ログイン時にメールアドレスの存在をチェックする処理は動かなくなります。
会員限定のサービス、つまりはゲスト購入を禁止しているサイトについては特に影響のない新機能ですが、ゲスト購入を許可しているサイトではこの機能の是非について検討されても良いのではないでしょうか。
GraphQLおよびREST APIの挙動変更
この新機能導入に伴い、GraphQLとREST APIの挙動が変更されています。
- GraphQLの「isEmailAvailable」クエリ
- REST APIの「/V1/customers/isEmailAvailable」エンドポイント
が標準状態では常に「true」を返すようになりました。
もちろん前述の設定値を変更することによって、従来の挙動に戻すことができます。ただし、変更については運営者・システム管理者の自己責任によるものとなっています。
今後のリリース予定について
リリース計画によると、次のリリースは太平洋標準時の2023年8月8日となっています。日本時間では8月9日にあたります。
次のリリースもセキュリティアップデートの予定ですので、大規模な変更は行われないと思われます。
ただし、次回のリリースは日本企業の夏季休暇付近に該当するため、内容については注意が必要です。
もし深刻な脆弱性の対応が含まれている場合は、できるだけ早期に適用する必要が出てきます。