
CVE-2022-24086 の検証済み PoC
Adobeが「極めて限定的な攻撃で悪用された」と報告したCVE-2022-24086は、深刻度スコア10点中9.8を記録し、これを悪用する攻撃者は、認証を必要とせずに影響を受けるシステム上でリモートコード実行を達成できます。現在CVE-2022-24087として追跡されている問題も、同じ深刻度スコアを持ち、攻撃に利用された場合に同じ結果をもたらす可能性があります。どちらも不適切な入力検証の脆弱性であり、Adobeはこれら2つのセキュリティ問題に対処するため、Adobe CommerceとMagento Open Source向けのパッチをリリースしました。
私たちは2022-24086のみに焦点を当てます。CMSにパッチが適用されている場合、通常は両方のパッチがすでに適用されているため、2022-24087を掘り下げる意味はありません。
Magento Open Source / Adobe Commerce - 2.3.3-p1 - 2.3.7-p2
Magento Open Source / Adobe Commerce - 2.4.0 - 2.4.3-p1
このPoCは、2.3.4、2.4.0、2.4.2-p2、2.4.3、2.4.3-p1のバージョンで、デフォルトのメールテンプレートモジュールとデフォルトのサンプルデータを使用して確認されています。
公式パッチMDVA-43443、MDVA-43395を詳しく見てみましょう。すべてのバージョン向けのすべてのComposerパッチは共通部分を共有しており、最も重要なものは次のとおりです。
+ private function sanitizeValue($value)
+ {
+ return is_bool($value) ? $value : str_replace(['{', '}'], '', (string) $value);
+ }
+ $pattern = '/{{.*?}}/';
+ do {
+ $result = preg_replace($pattern, '', (string)$result);
+ } while (preg_match($pattern, $result));
ご覧のとおり、{{ と }} を取り除こうとしています。これらの二重中括弧は、組み込みのメールテンプレートで使用されています。
さて、メールテンプレートを詳しく調べるときです!
3月15日に編集されたメールテンプレートの公式マニュアル。何が変わり、なぜ変わったのでしょうか? web.archive.orgでそのページの古いバージョンを見ると、システム変数に関する言及が削除されていることがわかります。getTemplateFilterメソッドとaddAfterFilterCallbackメソッドに関する情報はマニュアルから消去されました。
public function getTemplateFilter()
{
if (empty($this->templateFilter)) {
$this->templateFilter = $this->getFilterFactory()->create();
$this->templateFilter->setUseAbsoluteLinks($this->getUseAbsoluteLinks())
->setStoreId($this->getDesignConfig()->getStore())
->setUrlModel($this->urlModel);
}
return $this->templateFilter;
}
public function addAfterFilterCallback(callable $afterFilterCallback)
{
// Only add callback if it doesn't already exist
if (in_array($afterFilterCallback, $this->afterFilterCallbacks)) {
return $this;
}
$this->afterFilterCallbacks[] = $afterFilterCallback;
return $this;
}

主要なMagentoユーザーのほとんどはすでにパッチを適用しており、このツールは数か月前ほど危険ではありません。しかし、このツールが引き起こす可能性のある被害を考慮すると、このPoCは限定的なアクセス状態にあるべきではありません。
現在の価格 - 0.5 BTC。ペネトレーションの完全な手順、サンプルペイロード、およびサポートが含まれます。
相談と注文のためのXMPP連絡先は [email protected] です。
このPoCは、いかなる損害も引き起こさない状態であることを明示しています。これは、より大きなものを構築するための確固たる出発点です。
このプロジェクトの作成者は、資料によって引き起こされる可能性のあるいかなる損害についても責任を負いません。
CC0