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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-5118 — Divi Form Builder <= 5.1.2 — 인증되지 않은 역할 주입을 통한 권한 상승 | Kitploit
도구/GitHubGitHub/yucaerin/cve-2026-5118
Privilege EscalationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHubyucaerin/cve-2026-5118

CVE-2026-5118

Divi Form Builder <= 5.1.2 — 인증되지 않은 역할 주입을 통한 권한 상승

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-5118 — Divi Form Builder <= 5.1.2 — 인증되지 않은 역할 주입을 통한 권한 상승

🔥 취약점 요약

WordPress 플러그인 Divi Form Builder 버전 <= 5.1.2는 인증되지 않은 권한 상승 취약점에 취약합니다. 이 심각한 결함으로 인해 인증되지 않은 공격자가 문의 양식, 견적 양식, 뉴스레터 양식 또는 기타 DFB 지원 양식을 포함한 모든 Divi Form Builder 양식을 통해 직접 관리자 계정을 생성할 수 있습니다.

취약점은 FormSubmissionHandler.php 파일의 create_user() 함수에서 비롯됩니다. 이 함수는 적절한 인증 또는 허용 목록 검증 없이 사용자가 제출한 POST 데이터에서 role 매개변수를 직접 수락합니다. 플러그인은 제출된 역할이 시스템에 존재하는지만 확인합니다(예: administrator는 유효한 WordPress 역할). 공개 등록에 안전한 역할인지는 절대 확인하지 않습니다.

획기적인 발견: Divi Form Builder에서 사용하는 fb_nonce는 전역 공유 nonce(wp_create_nonce('security'))로, 사이트의 모든 양식에서 동일합니다. 또한 form_type=register는 공유 AJAX 핸들러로 POST를 통해 재정의될 수 있습니다. 즉, 모든 DFB 양식(문의, 견적, 피드백 등)을 무기화하여 임의의 역할 할당으로 사용자 등록을 트리거할 수 있습니다.

🔍 영향받는 플러그인

  • 플러그인 이름: Divi Form Builder
  • 영향받는 버전: <= 5.1.2
  • 취약점 유형: 역할 주입을 통한 인증되지 않은 권한 상승
  • CVE ID: CVE-2026-5118
  • CVSS 점수: 9.8 (심각)
  • CWE: CWE-266 — 잘못된 권한 할당
  • 영향: 전체 사이트 장악 — 관리자 계정 생성

🧨 공격자가 할 수 있는 일

🧪 익스플로잇 기능

  • 🔓 인증 불필요
  • 📝 모든 DFB 양식을 통해 작동 — 문의, 견적, 뉴스레터, 피드백 등
  • 🎯 AJAX 엔드포인트 대상 /wp-admin/admin-ajax.php?action=de_fb_ajax_submit_ajax_handler
  • 🧠 역할 주입 — 일반 양식 필드와 함께 role=administrator 전송
  • 🌐 대량 스캔 지원 — 자동 검색이 포함된 스레드 다중 대상 스캐너
  • 📄 결과 저장 위치 result.txt

🧠 취약한 코드

root@kitploit:~
// includes/shared/handlers/FormSubmissionHandler.php ~ line 2250
$role = isset($form_data['role']) ? sanitize_text_field($form_data['role']) : 'subscriber';

// ~ line 2278 — ONLY checks if role EXISTS, not if it is SAFE
$roles_obj = function_exists('wp_roles') ? wp_roles() : null;
if ($roles_obj && is_object($roles_obj) && is_array($roles_obj->roles) && !isset($roles_obj->roles[$role])) {
    $role = 'subscriber';  // ← "administrator" EXISTS, so this check PASSES
}

// ~ line 2301 — Directly applies the injected role
$user = new WP_User($user_id);
$user->set_role($role);  // ← PRIVILEGE ESCALATION!

🚀 사용법

단일 대상

root@kitploit:~
python3 exploit.py -t http://target.com
python3 exploit.py -t https://target.com -u hacker -p Pass123! -e [email protected]

대량 스캔 (http/https 없이 목록 사용)

targets.txt 파일 생성:

root@kitploit:~
target1.com
target2.com:8080
192.168.1.50
subdomain.target.com
root@kitploit:~
python3 exploit.py -l targets.txt -T 20

옵션

🛠 수정 권장 사항

root@kitploit:~
// SECURE: Allowlist only safe roles for public registration
$allowed_registration_roles = array('subscriber', 'contributor');
if (!in_array($role, $allowed_registration_roles, true)) {
    $role = 'subscriber';  // ← Reject ALL dangerous roles
}
  • 프론트엔드 양식에서 role 숨김 입력을 완전히 제거하세요.
  • 권한 있는 역할에 대해 current_user_can('create_users') 기능 검사를 추가하세요.
  • 전역 nonce 대신 양식별로 범위가 지정된 엄격한 nonce 검증을 구현하세요.
  • 등록 AJAX 엔드포인트에 속도 제한을 추가하세요.

🧠 연구자

  • 크레딧: 0xd4rk5id3

📚 참고 자료

  • Wordfence 공지
  • 원본 CVE 저장소

🔒 면책 조항:

이 정보는 교육 및 공인된 침투 테스트 목적으로만 제공됩니다. 허가 없이 컴퓨터 시스템을 악용하는 것은 불법이며 비윤리적입니다. 소유하지 않은 대상에 대해 테스트하기 전에 항상 명시적인 서면 허가를 받으십시오.

도구 다운로드
기능영향
🔑 로그인 없이 관리자 계정 생성전체 사이트 장악
📦 WooCommerce 고객 데이터 접근데이터 유출
💉 플러그인/테마 PHP 파일 편집원격 코드 실행
🕳️ 숨겨진 백도어 설치지속적 접근
👥 모든 사용자 데이터 보기개인정보 침해
플래그설명
-t, --target단일 대상 URL
-l, --list대상 목록 파일 (한 줄에 하나, http/https 선택 사항)
-T, --threads대량 스캔 스레드 수 (기본값: 10)
-o, --output결과 출력 파일 (기본값: result.txt)
-u, --username새 계정의 사용자 이름
-p, --password새 계정의 비밀번호
-e, --email새 계정의 이메일
-v, --verbose상세 디버그 출력
--no-confirm권한 확인 프롬프트 건너뛰기