Magento Ecommerceを使用するウェブサイト向け脆弱性アラート:CVE-2022-24086
DeveloperSteve Coochin
2022年2月17日
0 分で読めますMagentoは、2008年の初回リリース以来、広く利用され、愛されてきたeコマースプラットフォームです。Magentoの魅力の一つは、eコマースビジネスの成長に合わせて拡張できることです。セルフホスト型として始まったMagento(開発者として長年、幅広く利用してきました)は、現在、Adobeやサードパーティのエコシステムパートナーを通じて、明確なサポートと管理の選択肢を提供しています。
Wappalyzerによると、現在158,000のウェブサイトがMagentoを利用してeコマースを運営しています。Coca-ColaやOlympusといったグローバルブランドや、Land Roverのような自動車メーカーも、オンラインショッピングの提供にMagentoを活用しています。
OSL(Open Software License)3.0ライセンスのもとで配布され、現在はバージョン2.0のSDLCにあるMagentoには、主に2種類の製品があります。
Magento Open Sourceは、以前はCE(Community Edition)と呼ばれていました。AdobeとMagentoの支援を受けつつ、主にコミュニティとMagentoのエコシステムによってサポートされています。
Magento Enterpriseは、現在Adobe Commerceと呼ばれています。Adobeが管理するこの製品では、Adobeによるサポートと管理をさまざまなレベルで利用できます。
Magentoではこれまでに複数の脆弱性が確認されていますが、新たな脆弱性が見つかると、積極的にセキュリティアラートを発信し、パッチや修正を提供してきました。2月14日、不適切な入力検証に関する重大度「Critical」の脆弱性CVE-2022-24086が公表されました。Magento Open SourceおよびAdobe Commerceのうち、バージョン2.3.4より後、2.4.3-p1または2.3.7-p2より前のバージョンが影響を受けます。
CVE-2022-24086:Magentoの脆弱性を理解する
この脆弱性は、チェックアウトプロセスでの検証方法が不適切なために発生します。攻撃者はこれを悪用し、本来なら望ましくない種類の入力を無害化する入力検証を回避できます。
CVE-2022-24086の攻撃経路を悪用すると、MagentoでSQLインジェクションやPHPオブジェクトインジェクション攻撃が可能になり、不要なデータベースエントリを追加されたり、リモートコード実行を許したりするおそれがあります。
アプリケーションセキュリティの現場では、不適切な入力検証が深刻な結果を招くケースを見てきました。フォームの検証時に、プラットフォームが複数の文字種の組み合わせを認識できないと、有害な文字列が検知されず、被害をもたらすことがあります。
不適切なPHP検証を実際に試してみたい方は、GitHubでSnyk-LabsのPHP-Goofアプリをご覧ください。
修正プログラムの適用
Magentoは、強固なコミュニティとエコシステムを築いているプラットフォーム/フレームワークの一つです。今回のような状況でも、コミュニティが団結して修正プログラムの適用を支援する姿を、これまで何度も目にしてきました。
Magentoが公開したパッチは、/Email/Model/TemplateディレクトリにあるtransDirectiveパブリック関数内のFilter.phpのサニタイズメソッドを更新し、新しい正規表現による検出パターンを追加します。

さらに、このパッチではコアフレームワークのVarDirective.phpファイルにも、同じ正規表現による検出処理が追加されます。

Adobe公式のパッチはPHP Composerパッケージマニフェストに追加するか、フォークしたコードベースに直接適用できます。本番環境に適用する前に、パッチは必ずステージング環境または開発環境でテストしてください。また、バックアップを常に安全な状態で保管しましょう。
Snykで問題を自動検出
セキュリティは常に重要ですが、顧客の機密データや金融取引を扱う場合は特に重要です。Magentoのインストール方法に応じて、Snykを使ってスキャンを始める方法がいくつかあります。
最も推奨され、広く採用されているのはPHP Composerを使う方法です。Magentoのエコシステムに新しいアドオンやプラグインを追加する際の更新にも便利です。PHP Composerパッケージマニフェストは簡単にSnykでスキャンでき、CVE-2022-24086のようなライブラリや依存関係の脆弱性を検出できます。
Magentoはgitリポジトリからクローンまたはフォークすることもできます。これは、変更をプロジェクトに貢献したい場合(ぜひおすすめします!)や、リポジトリからのデプロイが必要な方法を採用している場合に特に便利です。
Snykはさまざまなリポジトリプラットフォームに接続でき、IaCの脆弱性をスキャンする多くのCI/CDサービスにも組み込めます。
スキャンサービスを利用すると、新たに発生した脆弱性の通知を受け取れるため、プラットフォーム、インフラ、顧客を攻撃から守るのに役立ちます。
CTFを始めよう
オンデマンドのバーチャル入門ワークショップで、CTFチャレンジの解き方を学びましょう。
