Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-1657 — EventPrime 플러그인에서의 인증되지 않은 임의 파일 업로드 | Kitploit
도구/GitHubGitHub/d3kc4rt1/cve-2026-1657
Vulnerability AnalysisCode AnalysisExploitationWeb SecurityPenetration TestingLearning & Education
GitHubd3kc4rt1/cve-2026-1657

CVE-2026-1657

EventPrime 플러그인에서의 인증되지 않은 임의 파일 업로드

저장소 보기
4개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-1657: EventPrime 플러그인의 인증되지 않은 임의 파일 업로드

면책 조항: 이 저장소는 교육 목적 및 윤리적 공개 전용으로 생성되었습니다. 이 취약점은 공급업체에 책임감 있게 보고되었으며 패치되었습니다. 적절한 권한 없이 시스템을 악용하기 위해 이 정보를 사용하지 마십시오.

요약

EventPrime WordPress 플러그인(버전 <= 4.2.8.1)에서 인증되지 않은 임의 파일 업로드 취약점이 발견되었습니다. 이 결함으로 인해 인증되지 않은 방문자는 WordPress uploads 디렉터리에 파일을 직접 업로드하고 미디어 라이브러리에 첨부 파일 레코드를 생성할 수 있습니다.

이 취약점은 특정 AJAX 엔드포인트가 nopriv(공개 액세스 가능)로 명시적으로 등록되어 있고 권한 검사와 적절한 파일 콘텐츠 검증이 모두 부족하기 때문에 존재합니다. 공격자는 이 엔드포인트를 악용하여 저장 공간을 고갈시키고, 미디어 라이브러리를 스팸으로 채우거나, 이미지로 위장한 악성 페이로드를 업로드할 수 있습니다.

취약점 개요

  • CVE ID: CVE-2026-1657
  • 제품: EventPrime (WordPress 플러그인)
  • 영향을 받는 버전: <= 4.2.8.1
  • 취약점 유형: 위험한 유형의 파일 무제한 업로드 (CWE-434)
  • 필요한 권한: 없음 (인증되지 않음)

기술 심층 분석 및 근본 원인

근본 원인은 안전하지 않은 AJAX 후크 등록과 불충분한 파일 검증의 조합입니다.

1. 안전하지 않은 AJAX 엔드포인트 등록: includes/class-eventprime-event-calendar-management.php에서 플러그인은 upload_file_media 작업을 등록합니다. 약 557행에서 작업 맵에 {upload_file_media: true}를 설정하는데, 여기서 true는 _nopriv 지원을 나타냅니다. 결과적으로 gwp_ajax_nopriv_ep_upload_file_media 후크가 등록되어 엔드포인트를 누구나 사용할 수 있게 됩니다.

2. 누락된 권한 및 논스 검사: upload_file_media() 핸들러 함수(includes/class-ep-ajax.php, 1659-1697행)는 업로드 권한을 확인하기 위해 current_user_can()을 사용하지 않으며 보안 논스(nonce)도 검증하지 않습니다.

3. 결함이 있는 검증 로직: 핸들러는 클라이언트가 제공한 파일 이름을 기반으로 파일 확장자(예: jpg/jpeg/png/gif)만 검증합니다(1661-1664행). getimagesize() 또는 wp_check_filetype_and_ext()와 같은 강력한 서버 측 콘텐츠 검증을 수행하지 않습니다. 이는 harmless.jpg로 이름이 바뀐 악성 스크립트나 기타 파일 유형이 WordPress가 메타데이터 생성을 시도하기 전에 디스크에 기록될 수 있음을 의미합니다.

4. 지속성: 파일은 move_uploaded_file()을 사용하여 wp_upload_dir()['path']에 직접 저장되고 wp_insert_attachment()를 통해 WordPress 첨부 파일이 생성됩니다.

비즈니스 영향

  • 저장 공간 고갈 (DoS): 공격자는 대용량 파일 업로드를 자동화하여 사용 가능한 모든 서버 디스크 공간 또는 클라우드 스토리지 할당량을 소모시켜 웹사이트를 중단시킬 수 있습니다.
  • 미디어 라이브러리 스팸: 공격자는 미디어 라이브러리를 부적절하거나 쓸모없는 이미지로 가득 채워 관리자가 사용할 수 없게 만들 수 있습니다.
  • 추가 악용 가능성: 다른 취약점(예: 로컬 파일 포함 - LFI, 또는 서버가 images를 실행하도록 잘못 구성된 경우)과 결합하면 원격 코드 실행(RCE)으로 이어질 수 있습니다.

개념 증명 (PoC)

재현 단계

1. 페이로드 준비: 로컬 머신에 poc.jpg라는 샘플 이미지 파일을 생성합니다.

2. 요청 실행: 세션 쿠키 없이 공개 AJAX 엔드포인트로 multipart/form-data POST 요청을 전송합니다:

root@kitploit:~
curl -i \
  -F "[email protected];filename=poc.jpg" \
  "http://TARGET_SITE/wp-admin/admin-ajax.php?action=ep_upload_file_media"

3. 응답 확인: 서버는 200 OK로 응답하고 새로 생성된 첨부 파일 ID를 포함한 JSON 객체를 반환합니다:

root@kitploit:~
{"success":true,"data":{"attachment_id":117}}

4. 검증:

  • 파일은 이제 wp-content/uploads/<year>/<month>/poc.jpg에 저장됩니다.
  • WordPress 미디어 라이브러리를 방문하는 관리자는 업로드된 파일을 볼 수 있습니다.

수정 방법

이 취약점을 해결하려면 개발자는 다음을 수행해야 합니다:

  1. 엔드포인트 액세스 제한: 업로드가 설계상 인증된 사용자만을 위한 것이라면 nopriv 선언을 제거합니다.
  2. 권한 검사 구현: current_user_can('upload_files')를 사용하여 권한이 있는 사용자만 업로드할 수 있도록 합니다.
  3. 논스 검증: CSRF 공격을 방지하기 위해 check_ajax_referer()를 구현합니다.
  4. 엄격한 파일 검증: 더 엄격한 MIME 유형 및 콘텐츠 검사를 수행하는 wp_handle_upload()와 같은 전통적인 WordPress 이미지 처리 함수를 사용합니다.

타임라인

  • 날짜 (2026-01-29): Wordfence에 보고됨.
  • 날짜 (2026-02-17): 취약점 패치됨 / 공개 게시.

참조 및 크레딧

  • Wordfence 취약점 데이터베이스
  • NVD의 CVE-2026-1657
  • WordPress.org의 EventPrime 플러그인
도구 다운로드