🔍 CVE-2026-103895

8.1
CVSS Score
HIGH
2026-10-16
2026-10-16 16:16
✅ 완료

🇰🇷 한글 설명

WordPress용 miniOrange OTP Login 플러그인 5.5.8 이하 버전에서 인증 우회 취약점이 발견되었습니다. mo_delay_otp_process 함수가 비밀번호 검증 전 인증 흐름을 단축시키고, OTP 유예 기간 정보가 세션이나 IP와 결합되지 않은 채 사용자 ID로만 저장되어 발생합니다. 공격자는 특정 파라미터를 사용하여 올바른 비밀번호 없이도 관리자를 포함한 모든 사용자로 로그인할 수 있습니다.

💡 쉬운 설명

로그인할 때 비밀번호 대신 OTP를 사용하는 기능의 허점을 이용해, 비밀번호를 몰라도 다른 사람의 계정으로 몰래 들어갈 수 있는 문제입니다. 특히 보안 설정이 특정 조건(OTP 전용 로그인 등)을 만족할 때 관리자 권한까지 탈취될 수 있어 위험합니다.

🇺🇸 원문 (English)

The miniOrange OTP Login, Verification and SMS Notifications plugin for WordPress is vulnerable to Authentication Bypass in versions up to, and including, 5.5.8 via the `mo_by_pass_login()` function. This is due to `mo_delay_otp_process()` short-circuiting the authentication flow before password validation or the administrator intent gate (added in 5.5.6) can run, combined with the Delay OTP grace flag (`mov_last_verified_dttm`) being stored as a `user_meta` row keyed solely by target user ID with no binding to the originating session, cookie, IP address, or device. This makes it possible for unauthenticated attackers to authenticate as any WordPress user — including administrators — by submitting only a known username with the `mo_wp_login_intent=otp` parameter and any non-empty password, thereby inheriting a legitimate user's open Delay OTP grace window without ever supplying correct credentials. Exploitation requires the site to have OTP-only login (`wp_login_skip_password=1`, `wp_login_skip_password_fallback=0`) and Delay OTP Verification (`wp_login_delay_otp=1`) enabled, and the target account must currently be within its configured Delay OTP interval.

📍 영향받는 시스템

miniOrange OTP Login, Verification and SMS Notifications plugin for WordPress (version <= 5.5.8)

⚔️ 공격 벡터

알려진 사용자 이름과 mo_wp_login_intent=otp 파라미터, 임의의 비밀번호를 전송하여 유예된 OTP 세션을 탈취함

🛡️ 대응 방법

플러그인을 최신 버전으로 업데이트하고, 불필요한 OTP 유예 설정 및 OTP 전용 로그인 설정을 재검토하십시오.

🔧 검증 코드

출력된 결과에서 플러그인 이름과 현재 설치된 버전이 5.5.8 이하인지 확인하십시오.

Shell / Script
wp plugin list --status=active | grep -i 'miniorange' && wp plugin list --all | grep -E 'miniorange-otp-login|miniorange-otp-verification' | awk '{print $4, $5}'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

WordPress