취약점 개요
Mirasvit Full Page Cache Warmer는 Magento 2 및 Adobe Commerce의 성능 최적화를 위한 인기 있는 확장 기능이다. 이 확장 기능은 페이지 캐시를 미리 워밍하여 사용자 경험을 개선하는 역할을 한다. 그러나 2026년 5월 Sansec 보안 연구팀이 발견한 CVE-2026-45247은 이 확장 기능에 치명적인 PHP 오브젝트 인젝션 취약점이 존재함을 드러냈다.
이 취약점은 인증 없는 공격자가 CacheWarmer 쿠키에 조작된 직렬화된 PHP 오브젝트를 전송하여 원격 코드 실행(RCE)을 가능하게 한다. CVSS 점수는 9.3-9.8점(Critical)으로 분류되었으며, CISA의 KEV(Known Exploited Vulnerabilities) 카탈로그에 등록되어 실제 악용이 확인되었다. 2026년 6월 3일 CISA에 등록된 이 취약점은 같은 해 6월 6일까지 완화 조치를 적용해야 하는 시급한 보안 위협으로 지정되었다.
기술적 분석
취약점 원리
Mirasvit Full Page Cache Warmer는 페이지의 다양한 상태(통화, 고객 그룹 등)에 대한 캐시를 미리 워밍한다. 특정 방문자의 페이지를 렌더링하기 위해, 워머는 대상 세션 상태를 쿠키에 패킹하고 각 크롤링 요청과 함께 전송한다. 서버에서 플러그인은 이 쿠키를 읽고 렌더링 전에 통화와 고객 세션을 전환한다.
문제는 이 플러그인이 모든 스토어프론트 요청에서 실행된다는 점이다. 단순히 워머 트래픽뿐만 아니라 일반 스토어 요청에서도 동작한다. 더 심각한 점은 확장 기능이 쿠키 값의 일부를 PHP의 내장 unserialize() 함수로 역직렬화할 때, 어떤 클래스가 인스턴스화될 수 있는지 제한하지 않는다는 것이다.
이 값이 클라이언트에서 직접 전달되기 때문에 공격자는 PHP가 재구성하는 오브젝트를 제어할 수 있다. 이것이 PHP 오브젝트 인젝션(CWE-502)이다. Magento와 그 의존성이 이미 제공하는 클래스들의 가젯 체인(gadget chain)과 결합하면, 오브젝트 인젝션은 원격 코드 실행으로 확대된다.
공격 시나리오
공격자는 다음과 같은 단계로 공격을 수행할 수 있다.
-
취약점 스캔: 공격자는 Mirasvit Cache Warmer를 사용하는 Magento 스토어를 식별한다. Sansec 스캔에 따르면 약 6,000개의 스토어가 영향을 받는 것으로 추정되며, Cloudflare와 같은 CDN이 설치를 숨기고 있어 실제 숫자는 더 높을 수 있다.
-
쿠키 조작: 공격자는 CacheWarmer 쿠키에 악의적인 직렬화된 PHP 오브젝트를 주입한다. 직렬화된 PHP 오브젝트는 base64로 인코딩되어 있으며, 보통 Tz, Qz, 또는 YT로 시작하는 값을 갖는다.
-
역직렬화 트리거: 공격자가 조작된 쿠키를 포함한 요청을 보내면, 서버의 취약한 코드가 쿠키 값을 역직렬화한다.
-
가젯 체인 실행: 역직렬화 과정에서 Magento와 그 의존성의 클래스들이 인스턴스화되고, 가젯 체인을 통해 원격 코드 실행으로 이어진다.
-
웹쉘 설치 및 지속적 접근: 공격자는 웹쉘이나 백도어를 설치하여 지속적인 접근 권한을 확보한다.
영향 범위
영향을 받는 버전은 Mirasvit Cache Warmer 1.11.12 미만의 모든 버전이다. 이 확장 기능은 여러 Mirasvit 패키지에 번들로 제공되므로, 많은 상인들은 직접 설치하지 않았더라도 실행 중일 수 있다.
주요 영향은 다음과 같다.
- 원격 코드 실행(RCE)을 통한 서버 완전 장악
- 고객 데이터(신용카드 정보, 개인정보) 유출
- 데이터베이스 접근 및 수정
- 서버를 봇넷에 편입하여 악의적인 활동에 사용
- 사이트의 평판 손상 및 법적 책임
탐지 포인트
네트워크 레벨 탐지
공격은 명확한 요청 시그니처를 남긴다. CacheWarmer 쿠키를 포함한 스토어프론트 요청을 찾아라. 쿠키 값에 CacheWarmer: 마커 뒤에 base64 문자열이 포함된 경우가 있다. 직렬화된 PHP 오브젝트는 base64 인코딩 시 Tz, Qz, 또는 YT로 시작하는 값으로 인코딩된다. 따라서 CacheWarmer:(Tz|Qz|YT) 패턴과 일치하는 CacheWarmer 쿠키 값은 악용 시도의 강력한 지표가 된다.
웹 애플리케이션 방화벽(WAF) 룰
다음과 같은 WAF 룰을 구현하여 탐지할 수 있다.
# CacheWarmer 쿠키 탐지
SecRule REQUEST_COOKIES:CacheWarmer "@rx ^CacheWarmer:(Tz|Qz|YT)" \
"id:100001,phase:1,deny,status:403,mg:\"Potential PHP Object Injection in CacheWarmer cookie\""
SIEM/SOC 모니터링
다음 로그 이벤트를 모니터링해야 한다.
- CacheWarmer 쿠키를 포함한 비정상적인 스토어프론트 요청
- 알려지지 않은 IP 주소에서의 반복적인 접근 시도
- 파일 시스템의 비정상적인 쓰기 작업(pub/ 디렉토리 등 웹 접근 가능한 위치)
- 데이터베이스의 비정상적인 쿼리 패턴
- 새로운 PHP 파일 생성(pub/ 디렉토리 내의 의심스러운 파일)
포렌식 점검 항목
침해가 의심되는 경우 다음 항목을 점검해야 한다.
- 웹 접근 로그에서 CacheWarmer 쿠키를 포함한 요청 확인
- pub/ 및 기타 웹 접근 가능한 폴더에서 예상치 못한 PHP 파일 확인
- 수정 시간이 최근인 파일 목록 확인(특히 pub/ 디렉토리)
- 데이터베이스에서 비정상적인 레코드 확인
- 프로세스 목록에서 의심스러운 프로세스 확인
대응 전략
즉시 대응 (24시간 이내)
1. 패치 적용
가장 중요하고 즉각적인 대응은 패치를 적용하는 것이다. Mirasvit는 2026년 5월 25일 패치된 버전 1.11.12를 출시했다. 모든 고객은 즉시 업데이트해야 한다.
composer update mirasvit/module-cache-warmer
# 또는
php bin/magento module:enable Mirasvit_CacheWarmer
php bin/magento setup:upgrade
php bin/magento cache:flush
2. 취약점 스캔
시스템에 Mirasvit Cache Warmer가 설치되어 있는지 확인하고, 현재 버전을 점검한다. 1.11.12 미만인 경우 즉시 업데이트해야 한다.
3. 웹 애플리케이션 방화벽(WAF) 룰 배포
CacheWarmer 쿠키 패턴을 탐지하는 WAF 룰을 배포하여 공격 시도를 차단한다.
4. 로그 검토
최근 웹 접근 로그를 검토하여 CacheWarmer 쿠키를 포함한 요청이 있었는지 확인한다. 의심스러운 패턴이 발견된 경우 침해 조사를 수행해야 한다.
5. 포렌식 도구 실행
eComscan과 같은 전문 도구를 사용하여 웹쉘, 백도어, 기타 악성코드 탐지를 수행한다. 공격자가 이미 침해한 경우 지속적 접근을 위한 백도어를 설치했을 수 있다.
단기 대응 (72시간 이내)
1. 완전한 시스템 스캔
전체 시스템을 대상으로 맬웨어 스캔을 수행한다. 특히 pub/ 디렉토리와 기타 웹 접근 가능한 위치에 초점을 맞춘다.
2. 사용자 계정 점검
의심스러운 사용자 계정, 비정상적인 권한 상승, 불법적인 파일 접근 등을 확인한다.
3. 데이터 무결성 검사
중요한 데이터베이스 테이블과 파일의 무결성을 검사하여 데이터 유출이나 수정이 없었는지 확인한다.
4. 비밀번호 재설정
모든 관리자 계정의 비밀번호를 재설정한다. 특히 데이터베이스 접근 비밀번호, API 키, 기타 민감한 자격증명을 갱신한다.
5. 인시던트 대응 계획 문서화
현재 상황, 수행한 대응 조치, 발견된 증거 등을 문서화한다. 향후 법적 대응이나 보험 청구를 위해 중요하다.
장기 대응 (1주 이내)
1. 보안 모니터링 강화
SIEM/SOC 모니터링을 강화하여 향후 침해 시도를 조기에 탐지할 수 있도록 한다. 특히 PHP 오브젝트 인젝션과 같은 공격 패턴에 대한 알림을 설정한다.
2. 보안 교육
개발팀과 운영팀에 PHP 역직렬화 취약점과 안전한 코딩 실무에 대한 교육을 제공한다.
3. 의존성 관리 개선
서드파티 확장 기능의 보안 취약점을 정기적으로 모니터링하고, 업데이트 알림을 설정한다.
4. 보안 아키텍처 검토
전체 보안 아키텍처를 검토하여 유사한 취약점이 다른 확장 기능에도 존재하는지 확인한다. 특히 사용자 입력을 신뢰하는 코드 패턴을 식별하고 수정한다.
5. 규정 준수 확인
PCI DSS, GDPR, 개인정보보호법 등 관련 규정의 준수 여부를 확인하고 필요한 조치를 취한다. 고객 데이터가 유출된 경우 법적 통지 의무를 준수해야 한다.
실무자를 위한 체크리스트
취약점 점검 체크리스트
- [ ] Mirasvit Cache Warmer가 설치되어 있는지 확인
- 명령어:
php bin/magento module:status | grep Mirasvit_CacheWarmer - [ ] 현재 버전 확인 (1.11.12 이상이어야 함)
- 명령어:
composer show mirasvit/module-cache-warmer | grep versions - [ ] 최근 웹 접근 로그에서 CacheWarmer 쿠키 요청 확인
- 로그 위치: /var/log/nginx/access.log 또는 /var/log/apache2/access.log
- [ ] pub/ 디렉토리 및 기타 웹 접근 가능한 위치에서 의심스러운 PHP 파일 확인
- 명령어:
find pub/ -name "*.php" -mtime -7 - [ ] WAF 룰이 CacheWarmer 쿠키 패턴을 탐지하는지 확인
- [ ] eComscan 또는 유사한 포렌식 도구가 설치되어 있는지 확인
패치 적용 체크리스트
- [ ] 백업 생성 (데이터베이스, 파일 시스템)
- 명령어:
mysqldump -u root -p magento > backup.sql - [ ] 개발 환경에서 먼저 패치 테스트
- [ ] Composer로 패키지 업데이트
- 명령어:
composer update mirasvit/module-cache-warmer - [ ] Magento 캐시 비우기
- 명령어:
php bin/magento cache:flush - [ ] 정적 콘텐츠 배포
- 명령어:
php bin/magento setup:static-content:deploy - [ ] 인덱스 재생성
- 명령어:
php bin/magento indexer:reindex - [ ] 프로덕션 모드 활성화
- 명령어:
php bin/magento deploy:mode:set production - [ ] 사이트 기능 테스트 (결제, 로그인, 장바구니 등)
침해 조사 체크리스트
- [ ] 웹 접근 로그 분석 (최근 30일)
- [ ] 시스템 로그 분석 (auth.log, syslog, etc.)
- [ ] 데이터베이스 로그 분석 (slow query log, error log)
- [ ] 파일 시스템 변경 점검 (find, stat, diff 활용)
- [ ] 프로세스 리스트 검토 (비정상적인 프로세스 확인)
- [ ] 네트워크 연결 검토 (netstat, ss 활용)
- [ ] 사용자 계정 검토 (마지막 로그인, 권한 변경 확인)
- [ ] eComscan 또는 유사한 도구로 맬웨어 스캔
- [ ] 의심스러운 파일 샘플 보존 (포렌식 분석용)
- [ ] 침해 시점, 범위, 영향 파악
사후 대응 체크리스트
- [ ] 모든 백도어 및 웹쉘 제거
- [ ] 모든 관리자 계정 비밀번호 재설정
- [ ] 데이터베이스 접근 비밀번호 변경
- [ ] API 키 및 토큰 갱신
- [ ] SSL 인증서 확인 및 갱신 필요 시 재발급
- [ ] 관련 규정 기관 및 당사자 통지 (필요 시)
- [ ] 고객에게 데이터 유출 통지 (필요 시)
- [ ] 인시던트 보고서 작성
- [ ] 향후 예방 조치 계획 수립
- [ ] 보안 교육 및 훈련 실시
결론
CVE-2026-45247은 Magento/Adobe Commerce 생태계에 심각한 보안 위협이다. 인증 없는 원격 코드 실행 가능성과 CISA KEV 카탈로그 등록은 이 취약점이 우선적으로 대응해야 할 문제임을 명확히 보여준다.
이 취약점의 위험성은 다음과 같다.
- 인증 없이 악용 가능한 취약점으로, 공격자가 특별한 권한이나 접근 권한 없이 서버를 장악할 수 있다.
- PHP 역직렬화 취약점은 탐지가 어렵고, 성공적인 공격 시 파괴적인 영향을 미친다.
- 이미 실제 환경에서 악용이 확인되어 있어, 적극적인 대응이 필요하다.
- CISA는 2026년 6월 6일까지 완화 조치를 적용하도록 요구하고 있다.
국내 보안 담당자는 즉시 다음 조치를 취해야 한다.
- 자신이 관리하는 시스템에 Mirasvit Cache Warmer가 설치되어 있는지 확인한다.
- 취약한 버전(1.11.12 미만)인 경우 즉시 패치를 적용한다.
- 웹 접근 로그를 검토하여 침해 여부를 확인한다.
- 의심스러운 활동이 발견된 경우 즉시 침해 조사를 수행한다.
- 포렌식 도구를 사용하여 시스템 전체를 스캔한다.
시기적절한 대응은 이 취약점의 영향을 최소화하는 열쇠다. 패치 적용이 어려운 경우 Sansec Shield와 같은 보안 솔루션을 배포하여 공격 시도를 차단하는 것도 고려해야 한다. 무엇보다 중요한 것은 침해가 의심되는 경우 즉시 전문가의 도움을 받아 철저한 포렌식 조사를 수행하는 것이다.
참고자료
-
NVD - CVE-2026-45247
https://nvd.nist.gov/vuln/detail/CVE-2026-45247 -
Sansec Research - Mirasvit Cache Warmer Object Injection
https://sansec.io/research/mirasvit-cache-warmer-object-injection -
CISA Known Exploited Vulnerabilities Catalog
https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2026-45247 -
VulnCheck Advisory
https://www.vulncheck.com/advisories/mirasvit-cache-warmer-for-magento-php-object-injection -
Mirasvit Changelog
https://mirasvit.com/package/changelog/?package=mirasvit/module-cache-warmer
본 콘텐츠는 AI 기술로 생성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하시면 댓록을 통해 소중한 의견 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.
댓글 (0)
댓글을 작성하려면 로그인이 필요합니다.
로그인아직 댓글이 없습니다.
첫 번째 댓글을 작성해보세요!