COMMENTS (0)
댓글은 익명으로 작성되며, 삭제 비밀번호를 설정하면 본인만 삭제할 수 있습니다. 비밀번호를 설정하지 않은 댓글은 누구나 삭제할 수 있습니다.
WordPress 플러그인 Everest Forms Pro CVSS 9.8 무인증 RCE 취약점 CVE-2026-3300 분석. PHP 코드 인젝션 메커니즘, 2만 9천 건 공격 차단, 단일 IP 공격 패턴, 탐지 지표 정리.
댓글은 익명으로 작성되며, 삭제 비밀번호를 설정하면 본인만 삭제할 수 있습니다. 비밀번호를 설정하지 않은 댓글은 누구나 삭제할 수 있습니다.
: Everest Forms Pro eval() 취약점, 2만 9천 건 공격 차단
2026년 4월 13일, Wordfence 방화벽이 WordPress 폼 플러그인을 겨냥한 첫 번째 공격 요청을 막아냈다. 인증 없이 서버에서 임의 PHP를 실행하고 관리자 계정을 심는 공격이었다. 패치가 배포된 지 26일이 지난 시점이었다. 이후 두 달간 차단된 공격 시도는 2만 9,300건을 넘었고, 그 중 90%는 단일 IP 주소에서 발사됐다.
| 항목 | 내용 |
|---|---|
| CVE | |
| CVSS | 9.8 (Critical) |
| 영향 버전 | Everest Forms Pro ≤ 1.9.12 |
| 항목 | 내용 |
|---|---|
| 패치 버전 | 1.9.13 (2026-03-18) |
| 공격 벡터 | 네트워크, 인증 불필요 |
| CWE | CWE-94 (코드 인젝션) |
Everest Forms Pro는 WPEverest가 개발한 WordPress 유료 폼 플러그인이다. 전 세계 약 4,000개 사이트에 설치되어 있으며, 이 취약점은 인증 없이 서버에서 임의 PHP 코드를 실행할 수 있게 한다. 공격에 성공하면 관리자 권한 계정을 즉시 생성해 사이트 전체를 장악한다.
CVSS 9.8은 "인증 불필요 + 네트워크 경유 + 단독 공격 가능"이라는 세 조건이 동시에 충족될 때 나오는 점수다. 은 이 세 조건을 모두 충족한다. 복잡한 사전 조건이나 피해자 상호작용 없이 웹 접근만으로 공격이 완결된다.
결함의 핵심은 Calculation Addon의 process_filter() 함수에 있다. 이 함수는 폼의 "Complex Calculation" 기능에서 사용자 입력값을 PHP 코드 문자열로 조합한 뒤 PHP 동적 코드 실행 함수(eval)로 처리한다.
문제는 입력 전처리 방식이다. 플러그인은 sanitize_text_field()로 입력을 정제하지만, 이 함수는 홑따옴표와 PHP 코드 문맥 특수문자를 이스케이프하지 않는다. PHP 동적 실행 함수에 넘어가는 문자열은 '사용자입력' 형태로 홑따옴표로 감싸인다. 공격자가 입력값에 홑따옴표를 포함시키면 이 따옴표가 문자열을 닫아버리고, 이후에 오는 내용이 PHP 코드로 해석된다. sanitize_text_field()는 XSS 방어용 함수로서 이 시나리오를 차단하도록 설계되지 않았다.
텍스트·이메일·URL·선택·라디오 필드 등 문자열형 필드가 있는 모든 폼이 공격 경로가 된다. 별도 계정이나 세션이 필요 없다. Wordfence 어드바이저리는 이를 CWE-94(코드 인젝션)로 분류했다.
패치 배포 후 2주 이상의 시차가 있었고, 그 사이 취약한 사이트는 무방비 상태였다.
Wordfence 텔레메트리에 따르면, 공격의 약 90%는 단일 IP 주소 202.56.2.126에서 발사됐다. 전체 차단 건수의 대부분이 한 곳에서 집중된다는 것은 취약점 스캐너 또는 봇넷이 이 CVE를 자동으로 탐지·공격하는 루틴에 포함됐음을 보여준다.
관찰된 주된 페이로드는 WordPress 내장 함수를 호출해 사용자명 "diksimarina", 이메일 diksimarina@gmail.com을 가진 관리자 계정을 생성하는 코드였다. 계정이 만들어지면 공격자는 WordPress 대시보드에 정상 로그인해 사이트를 완전히 장악한다.
패치 이후 26일의 지연은 공격 도구 제작 또는 자동화 스캐너 업데이트에 걸리는 전형적인 시간이다. 공개 취약점 정보가 나온 뒤 수주 내에 인터넷 전체 스캔이 시작되는 패턴은 WordPress 플러그인 취약점에서 반복적으로 관찰된다.
이 공격은 특성상 복수의 흔적을 남길 수밖에 없다.
MITRE ATT&CK 추정 매핑 (공식 매핑 없음 — 아래는 분석 추정)
| 단계 | 기법 ID | 설명 |
|---|---|---|
| 초기 접근 | T1190 | 외부 공개 애플리케이션 악용 |
| 실행 | T1059.004 | 스크립팅 인터프리터(PHP) |
| 지속성 | T1136.001 | 로컬 계정 생성 |
WordPress 로그 흔적
공격 성공 시 다음 지표가 남는다.
diksimarina 또는 유사 패턴wp_users 테이블에 예상치 못한 관리자 권한 row 삽입wp-login.php 즉시 접근 시도네트워크 흔적
') 포함 파라미터 값202.56.2.126 (2026년 6월 기준 주 공격 IP — 추후 변경 가능)서버 측 흔적
process_filter 함수 실행 중 예외 또는 경고"Complex Calculation" 기능은 플러그인 기본 설정에서 비활성화되어 있을 수 있다. 활성화 여부 확인만으로 노출 표면 유무를 즉시 파악할 수 있다.
국내 WordPress 기반 기업·공공·쇼핑몰 사이트는 수만 곳에 달한다. PHP 동적 코드 실행을 통한 코드 인젝션은 CMS 플러그인 전반에서 반복적으로 등장하는 취약점 구조다. 4,000개 설치 사이트 중 업데이트가 느린 유료 플러그인 환경은 국내 운영 환경에서도 동일하게 적용된다.
2만 9,300건의 차단 건수는 단순한 숫자가 아니다. 패치가 나온 뒤에도 수주 동안 취약한 상태로 남은 사이트들을 향해 자동화 도구가 쉬지 않고 작동했다는 증거다. eval이 사용자 입력을 처리하는 모든 코드 경로는 이 취약점과 동일한 구조적 위험을 가진다.
AI 활용 안내 이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 인용된 통계와 사례는 참고 자료에 명시된 출처에 근거하며, 설명을 위한 일부 표현은 각색되었습니다.
면책 조항 본 글은 보안 인식 제고를 위한 교육 목적으로 작성되었습니다. 언급된 공격 기법을 실제로 시도하는 행위는 「정보통신망법」, 「형법」 등에 따라 처벌받을 수 있으며, 본 블로그는 이에 대한 법적 책임을 지지 않습니다.