🇰🇷 한글 설명
WordPress의 OTP Login With Phone Number, OTP Verification 플러그인 1.8.50~1.8.60 버전에서 인증 우회 취약점이 발견되었습니다. Firebase 인증 과정에서 검증된 세션과 요청된 전화번호를 대조하지 않아, 공격자가 자신의 세션으로 타인의 전화번호를 이용해 인증을 통과할 수 있습니다.
💡 쉬운 설명
로그인할 때 본인 인증을 거치지만, 인증된 번호와 실제 로그인하려는 번호가 일치하는지 확인하지 않는 허점이 있습니다. 이를 통해 공격자는 다른 사람의 전화번호를 입력하여 해당 사용자로 로그인할 수 있습니다.
🇺🇸 원문 (English)
The OTP Login With Phone Number, OTP Verification plugin for WordPress is vulnerable to authentication bypass in versions 1.8.50 through 1.8.60. This is due to the Firebase verification flow in the `lwp_ajax_register` AJAX handler not binding the Firebase session to the phone number supplied in the request. The `idehweb_lwp_activate_through_firebase()` function validates that a Firebase OTP session is legitimate, but the `phoneNumber` returned by Firebase is never compared against the victim's stored phone number. This makes it possible for unauthenticated attackers to authenticate as any user who has a phone number stored in user meta, including administrators, by verifying their own Firebase session and supplying the victim's phone number in the same request.
📍 영향받는 시스템
WordPress OTP Login With Phone Number, OTP Verification plugin versions 1.8.50 through 1.8.60
⚔️ 공격 벡터
공격자가 자신의 Firebase OTP 세션을 생성한 후, 요청 데이터에 피해자의 전화번호를 포함시켜 전송함으로써 인증을 우회함
🛡️ 대응 방법
해당 플러그인을 최신 보안 패치가 적용된 버전으로 즉시 업데이트하십시오.
🔧 검증 코드
출력된 플러그인 목록에서 해당 플러그인의 버전이 1.8.50에서 1.8.60 사이인지 확인하십시오.
wp plugin list --status=active | grep -E 'otp-login-with-phone-number|otp-verification'