Sansec、Adobe Commerce / Magento Open Sourceに対するCosmicSting攻撃のリスクを警告

セキュリティ企業のSansecが、Adobe Commerce / Magento Open Sourceに対するCosmicSting攻撃と呼ばれる不正アクセスのリスクについて警告しています(英文記事はこちら)。
この記事ではこのCosmicSting攻撃についてSansecの記事を引用しつつ解説していきたいと思います。

CosmicSting攻撃とは?

「CosmicSting」は、2024年6月のAdobe Commerce / Magento Open Sourceのセキュリティリリースで報告された脆弱性のひとつです。
この脆弱性は「CVE-2024-34102」と呼ばれており、脆弱性の概要としては以下のように登録されています。

CVE 2024-34102
Type unauthorized XXE, RCE together with CVE-2024-2961
Severity CVSS 9.8
Automatable no interaction needed
Exploit verified by Sansec, not public yet
Credits discoverd by spacewasp

この攻撃は、

  • Linuxにおけるiconvの脆弱性
  • XMLの外部エンティティ参照(XXE)
  • リモートコード実行(RCE)

の組み合わせによって引き起こされ、機密ファイルの閲覧を含むシステムの完全な権限を奪われるリスクがあります。
この脆弱性は、過去にMagento関係で報告された以下の脆弱性に匹敵する「最悪」なものとして扱われています。

  • 2015 Shoplift攻撃
  • 2019 Ambionics攻撃
  • 2022 Trojan Order攻撃

それそれの脆弱性に関連する攻撃で、数千のウェブサイトが攻撃を受け、改ざんされました。
Sansecでは、「可及的速やかにアップデートを実施せよ」と警鐘を鳴らしています。

対象となるAdobe Commerce / Magento Open Sourceのバージョン

対象となるバージョンは以下のとおりです。

  • 2.4.4-p8以前
  • 2.4.5-p7以前
  • 2.4.6-p5以前
  • 2.4.7

いずれのバージョンも、先日リリースされた最新のセキュリティアップデートを適用することで対策が可能です。
ただし、2.4.7より前のバージョンにおいては、先日の記事でお伝えした通り、Content Security Policy周りの仕様変更が含まれているため、アップデートを実施する場合はご注意ください。

アップデートがすぐにできない場合の対応策

Sansecの記事では、上記のセキュリティリリースがすぐに適用できない場合の暫定対策が開示されています。
ここではその手順についてご紹介します。

対策方法は2つのステップから構成されています。

  1. glibcとiconvをアップデートする
  2. app/bootstrap.phpに緊急対策コードを追加する

順番にご紹介していきましょう。

glibcとiconvをアップデートする

まずはこちらのSansecの記事で紹介されている、チェックツールを用いてお使いのサーバーに脆弱性がないかを確認します。
gccが入っている環境の場合は、

curl -sO https://sansec.io/downloads/cve-2024-2961.c && gcc cve-2024-2961.c -o poc && ./poc

を実行します。
gccのない環境の場合は、

curl -sO https://sansec.io/downloads/linux-amd64/cve-2024-2961 && chmod 700 cve-2024-2961 && ./cve-2024-2961

を実行します。

脆弱性がない場合は、次のステップに進みましょう。
脆弱性がある場合は、glibcとiconvの含まれているパッケージなどを更新してください。

app/bootstrap.phpに緊急対策コードを追加する

次に、app/bootstrap.phpの先頭に以下のコードを追加します。

if (strpos(file_get_contents('php://input'), 'dataIsURL') !== false) {
    header('HTTP/1.1 503 Service Temporarily Unavailable');
    header('Status: 503 Service Temporarily Unavailable');
    exit;
}

ただし、このコードは無保証です。使用する場合は、自己責任かつ十分試験をしたうえでご利用ください。
最も安全な方法はセキュリティアップデートを適用することであることは言うまでもありません。

対象方法がわからない方は

弊社では、Adobe Commerce / Magento Open Sourceに関する技術サポートをご提供しております。
今回の脆弱性以外にも様々なサポートが可能です。

お困りの際はお問合せフォームよりご連絡ください。