Elementor Pro 공격 시도 19만 건…4.2.2 설치 뒤 폴더도 확인하라

WordPress용 Elementor Pro의 파일 업로드 취약점 CVE-2026-32475가 실제 공격에 악용되고 있다. 9월 2일 공개된 공격 분석을 확인한 BleepingComputer의 9월 3일 보도 에 따르면 Wordfence 방화벽이 차단한 시도는 19만 건을 넘었으며, 공격은 수정판이 나온 8월 19일부터 관측됐다.
영향을 받는 범위는 Elementor Pro 4.2.1 이하이고 수정판은 4.2.2다. 관리자는 4.2.2 이상 설치 여부뿐 아니라 공개된 폼의 파일 업로드 설정, /wp-content/uploads/elementor/forms/의 PHP 파일, /wp-admin/admin-ajax.php 요청 기록을 확인해야 한다. 패치는 새로운 악용을 막지만 업데이트 전에 저장된 웹셸까지 지우지는 않기 때문이다.
먼저 버전과 취약한 폼 조건을 함께 판별한다

플러그인 설치 여부만으로 침해 가능성을 판단할 수는 없다. Wordfence의 공격 관측과 기술 분석 은 영향 버전을 4.2.1 이하로 규정하고, 공개된 페이지에 Elementor Pro Form 위젯과 필수 입력이 아닌 File Upload 필드가 있어야 실제 악용 조건이 성립한다고 설명한다.
관리자는 활성화된 Elementor Pro의 버전을 확인한 다음 외부 방문자가 열 수 있는 페이지에서 Form 위젯을 찾아야 한다. 각 폼에 File Upload 필드가 있는지, 해당 필드가 선택 입력으로 설정됐는지 확인한다. 메뉴에서 내렸더라도 URL로 접근할 수 있는 랜딩 페이지와 과거 게시 페이지는 공개 상태일 수 있으므로 점검 대상에서 빼면 안 된다.
공개 자료는 조건을 서로 다른 수준으로 요약한다. 실제 악용을 다룬 독립 보도는 게시된 Form 위젯의 File Upload 필드를 조건으로 제시하지만, 기술 분석은 그중에서도 필수로 지정되지 않은 업로드 필드를 명시한다. 따라서 관리자는 공개 폼의 모든 업로드 필드를 목록화한 뒤 선택 입력 필드와 다중 파일 업로드 설정을 우선 조사하는 편이 안전하다.
- Elementor Pro의 활성 버전이 4.2.1 이하인지 확인한다.
- 외부에서 접근 가능한 Form 위젯 페이지를 목록화한다.
- File Upload 필드의 필수 입력 여부와 다중 업로드 설정을 확인한다.
- 현재 폼뿐 아니라 8월 19일 이후 공개됐던 폼도 점검 범위에 넣는다.
검증 우회는 파일 배열 처리 방식의 차이에서 발생한다. 공격자가 첫 번째 배열 요소를 빈 파일로 보내면 검증 과정이 종료되고, 뒤에 배치한 PHP 파일은 확장자와 파일 유형 검사를 받지 않은 채 처리될 수 있다. 공개 폼을 이용하므로 공격에 계정 인증이 필요하지 않으며, 업로드된 파일이 실행되면 웹 서버 권한으로 원격 명령을 수행할 수 있다.
4.2.2 이상을 설치하고 실제 배포 버전을 확인한다
Elementor Pro 공식 변경 기록 에는 4.2.2가 8월 19일 배포됐고 Form 위젯의 코드 보안 집행을 개선했다고 적혀 있다. CVE 식별자를 직접 표시하지는 않지만, Wordfence 분석과 독립 보도는 4.2.2를 이 취약점이 완전히 수정된 버전으로 지목한다.
취약 조건에 해당하거나 폼 구성을 즉시 확인할 수 없다면 4.2.2 이상으로 먼저 업데이트한다. 관리자 화면의 완료 알림에 그치지 말고 플러그인 목록에 표시되는 활성 버전을 다시 확인해야 한다. 여러 서버가 같은 사이트를 제공하는 환경에서는 모든 노드에 동일한 수정판이 배포됐는지도 대조한다.
업데이트 전까지는 취약할 수 있는 폼을 비공개로 전환하거나 File Upload 필드를 제거해 노출을 줄일 수 있다. 그러나 이런 임시 조치는 정식 패치를 대신하지 않으며, 이미 서버에 들어온 파일을 제거하지도 않는다. 방화벽의 차단 기록 역시 해당 방화벽이 관측한 요청에 관한 정보이므로 사이트가 침해되지 않았다는 단독 증거로 사용할 수 없다.
업로드 폴더의 PHP 파일을 침해 지표로 조사한다

패치 뒤 가장 먼저 볼 경로는 /wp-content/uploads/elementor/forms/다. 악용에 성공하면 공격자가 보낸 .php 확장자를 유지한 파일이 임의로 생성된 이름으로 이곳에 저장될 수 있다. 이 디렉터리는 폼 첨부파일을 위한 위치이므로 PHP 파일이 존재한다면 강한 침해 지표로 봐야 한다.
호스팅 파일 관리자, SFTP 또는 서버 셸로 해당 디렉터리와 하위 디렉터리를 조사한다. 셸을 사용할 수 있다면 find wp-content/uploads/elementor/forms -type f -iname '*.php'처럼 PHP 확장자를 검색할 수 있다. 8월 19일 이후 생성되거나 수정된 낯선 파일도 함께 추리되, 검색 결과만으로 파일의 안전성을 단정하지 않는다.
의심 파일을 브라우저로 열어 확인하면 서버에서 코드가 실행될 수 있다. 먼저 외부 접근을 제한하고 파일의 전체 경로, 크기, 생성·수정 시각과 해시를 기록한 뒤 실행되지 않는 위치로 격리한다. 파일 하나를 삭제하기 전에 관련 로그와 원본 증거를 보존해야 공격 시점과 후속 동작을 조사할 수 있다.
이 폴더에서 PHP 파일이 나오지 않았다고 해서 비침해가 확정되는 것은 아니다. 공격자가 최초 웹셸을 실행한 뒤 다른 플러그인, 테마 또는 업로드 경로에 백도어를 복사하고 원본을 지웠을 수 있다. 따라서 파일 검색 결과는 접근 로그 및 WordPress 파일 무결성 조사와 함께 판단해야 한다.
admin-ajax.php 요청과 파일 접근 시간을 맞춰 본다

웹 서버 접근 로그에서는 /wp-admin/admin-ajax.php로 들어온 POST 요청을 추출한다. 그중 action 값이 elementor_pro_forms_send_form인 요청을 시간순으로 정리하고, 같은 시각대에 /wp-content/uploads/elementor/forms/ 아래의 PHP 파일을 요청한 기록이 이어지는지 확인한다.
점검할 항목은 요청 시각, 원격 IP 주소, HTTP 메서드, 응답 상태, 전송량, 사용자 에이전트와 요청 대상 경로다. 특정 IP 주소 목록과 일치하는지만 확인해서는 부족하다. 공격 인프라는 바뀔 수 있고, CDN이나 역방향 프록시를 사용하는 사이트에서는 원래 접속자 주소가 별도 헤더나 제공업체 로그에 기록될 수 있다.
로그가 8월 19일까지 보존돼 있는지도 확인한다. 서버 로그가 순환돼 사라졌다면 같은 기간의 CDN, WAF, 로드밸런서 또는 관리형 호스팅 보안 기록을 조회한다. 관련 로그가 없다는 사실은 기록 부재를 뜻할 뿐 비침해를 보장하지 않으므로, 파일 시스템에서 확인한 결과와 대조해야 한다.
- 8월 19일 이후의 admin-ajax.php POST 요청을 추출한다.
- elementor_pro_forms_send_form 요청의 시각과 원격 주소를 정리한다.
- 같은 시간대의 PHP 파일 생성 및 업로드 경로 접근을 대조한다.
- 서버 기록이 부족하면 CDN·WAF·호스팅 로그로 조사 범위를 넓힌다.
흔적이 나오면 웹셸 하나가 아닌 전체 사이트를 격리한다
의심 PHP 파일이나 업로드 직후의 실행 기록이 발견되면 단순 파일 삭제가 아니라 침해 사고 대응으로 전환해야 한다. 웹셸이 실행됐다면 공격자는 WordPress 설정과 데이터베이스 자격 증명에 접근하거나 관리자 계정 및 다른 지속성 파일을 추가했을 가능성이 있기 때문이다.
외부 접근을 제한하고 로그와 의심 파일을 보존한 다음 WordPress 코어, 플러그인과 테마를 신뢰할 수 있는 배포본과 비교한다. 최근 생성된 관리자 계정, 예약 작업, mu-plugins, wp-config.php, .htaccess, 업로드 디렉터리 밖의 비정상 PHP 파일도 조사한다. 확인되지 않은 세션을 종료하고 관리자·데이터베이스·호스팅·SFTP 또는 SSH 자격 증명과 WordPress 비밀 키는 깨끗한 장치에서 교체한다.
복구에 백업을 사용한다면 침해 이전 시점임을 확인한 사본을 선택하고, 복원 직후 Elementor Pro 4.2.2 이상을 적용한다. 공개 폼의 업로드 설정도 다시 검토하고 서버 수준에서 업로드 디렉터리의 PHP 실행을 차단한다. 방화벽 기능을 이용하는 경우에는 업로드 디렉터리 코드 실행 차단 옵션이 실제로 활성화됐는지 확인해야 한다.
현재 확인된 수치는 Wordfence가 차단한 악용 시도 19만 건 이상이지 감염된 사이트 수가 아니다. 전체 피해 규모는 공개되지 않았다. 개별 사이트의 상태는 설치 버전만으로 확정할 수 없으며, 취약한 폼의 노출 이력과 파일 시스템, 접근 로그, 후속 백도어 조사 결과를 함께 봐야 한다.
함께 읽기:
뉴스레터 구독
최신 Web3, AI, 암호화폐 뉴스를 이메일로 받아보세요.