Elementor Pro 4.2.1 및 이전 버전은 Forms 위젯의 파일 업로드 필드에 있는 인증되지 않은 원격 코드 실행(RCE) 취약점으로 인해 침해될 수 있습니다. 이 문제는 4.2.2 버전에서 패치되었으므로, 이전 코드를 실행 중인 사이트는 즉시 업그레이드해야 합니다.
버그의 동작 방식
이 취약점은 CVSS 9.0 등급을 받았으며, 이는 공격자가 취약한 사이트에 접속할 수 있다면 로그인이나 별도의 인증 정보 제공 없이도 서버에서 임의의 PHP 코드를 실행할 수 있음을 의미합니다. 문제는 Elementor Pro가 Forms 위젯에서 파일을 업로드하는 방식에 있습니다. 이 플러그인은 두 개의 별도 루프를 실행하는데, 하나는 업로드된 각 파일을 검증하는 루프이고, 다른 하나는 파일을 웹에서 접근 가능한 업로드 디렉토리에 저장하는 루프입니다.
공격자는 두 개의 파일이 포함된 단일 요청을 생성할 수 있습니다. 첫 번째 파일에는 빈 이름을 부여하여 검증 루프가 확인 과정을 건너뛰도록 만듭니다. 두 번째 파일인 악성 PHP 스크립트는 두 번째 루프를 통과하여 공개 폴더에 저장됩니다. Elementor Pro는 업로드된 파일 이름을 타임스탬프를 사용하여 생성하기 때문에, 공격자는 파일 이름을 예측한 뒤 나중에 해당 파일을 직접 요청하여 코드를 실행할 수 있습니다.
취약점이 발생한 원인
이 이중 루프 설계는 검증과 저장을 독립적으로 유지하기 위한 의도였으나, 두 과정 사이의 공유된 무결성 검사(sanity check)가 부족하여 빈 이름 트릭이 통과될 수 있었습니다. 이 버그는 사이트 소유자가 방문자에게 해당 기능을 활성화했는지 여부와 관계없이, Forms 위젯의 파일 업로드 필드를 사용하는 모든 설치 환경에 영향을 미칩니다.
위험 대상
Elementor Pro 4.2.1 또는 이전 버전을 설치한 모든 WordPress 사이트가 노출되어 있습니다. 공격에 인증이 필요하지 않기 때문에 관리자 액세스를 제한하는 사이트조차 취약합니다. 공격에 성공하면 공격자는 호스팅 환경에 대한 완전한 제어권을 갖게 되며, 이는 데이터 도난, 사이트 변조 또는 랜섬웨어 배포로 이어질 수 있습니다.
지금 해야 할 일
WordPress CLI 명령어를 사용하여 설치된 버전을 확인하세요:
wp plugin list --name=elementor-pro --field=version출력 결과가 4.2.1 이하인 경우, 즉시 4.2.2 또는 이후 버전으로 업데이트하십시오. 업데이트를 통해 결함이 있는 업로드 로직이 빈 이름 우회를 차단하는 단일 원자적(atomic) 검증 및 저장 루틴으로 교체됩니다.
업그레이드 후, 업로드 디렉토리를 조사하여 플러그인에서 사용하는 타임스탬프 패턴과 일치하는 PHP 파일이 있는지 확인하고 이를 삭제하십시오.
특히 트래픽이 많은 사이트의 경우, 패치가 적용될 때까지 공개 양식에서 파일 업로드 필드를 비활성화하는 것을 고려하십시오.
반론
일부 개발자들은 공격을 위해 Forms 위젯이 공개적으로 접근 가능한 파일 업로드 필드로 구성되어 있어야 하므로 위험이 제한적이라고 주장합니다. 그러나 많은 Elementor 기반 사이트가 문의, 입사 지원 또는 사용자 생성 콘텐츠를 위해 이러한 양식을 노출하고 있어, 해당 조건이 매우 흔하기 때문에 이 취약점은 심각한 것으로 간주됩니다.
향후 주의 사항
보안 연구원들은 더 많은 사이트에서 공격 시도가 보고됨에 따라 추가적인 권고 사항이 나올 것으로 예상하고 있습니다. 후속 패치나 완화 조치에 대해 Elementor의 공식 공지 및 신뢰할 수 있는 취약점 데이터베이스를 계속 주시하십시오.
요약: Elementor Pro 4.2.1 및 이전 버전의 RCE 취약점은 로그인 없이 공격이 가능한 고위험 공격 벡터입니다. 4.2.2로 업데이트하는 것이 유일하고 확실한 방어책이며, 업데이트를 미루는 것은 서버와 데이터를 심각한 위험에 빠뜨리는 일입니다.
