
CVE-2022-24086에 대한 검증된 PoC
CVE-2022-24086은 Adobe가 "매우 제한된 공격에서 야생에서 악용되고 있다"고 확인한 취약점으로, 10점 만점에 9.8점의 심각도 점수를 받았으며, 이를 악용하는 공격자는 인증 없이 영향을 받는 시스템에서 원격 코드 실행을 달성할 수 있습니다. 현재 CVE-2022-24087로 추적되는 이슈도 동일한 심각도 점수를 가지며 공격에 활용될 때 동일한 결과를 초래할 수 있습니다. 둘 다 부적절한 입력 검증(Improper Input Validation) 취약점이며, Adobe는 이 두 보안 문제를 해결하기 위해 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