🇰🇷 한글 설명
Masteriyo LMS WordPress 플러그인 2.1.7 이하 버전에서 웹훅 서명 검증 미흡으로 인한 권한 우회 취약점이 발견되었습니다. 공격자는 Stripe 웹훅 서명 검증을 우회하여 가짜 결제 완료 이벤트를 전송함으로써 결제 없이 유료 강의 콘텐츠에 접근할 수 있습니다.
💡 쉬운 설명
결제 확인 과정에서 본인 확인 절차가 제대로 이루어지지 않아 발생하는 문제입니다. 해커가 가짜 결제 완료 신호를 보내면 돈을 내지 않고도 유료 강의를 마음대로 들을 수 있습니다.
🇺🇸 원문 (English)
The Masteriyo LMS – Online Course Builder for eLearning, LMS & Education plugin for WordPress is vulnerable to Authorization Bypass Through User-Controlled Key in versions up to and including 2.1.7. This is due to insufficient webhook signature verification in the handle_webhook() function. The webhook endpoint processes unauthenticated requests and only performs signature verification if both the webhook_secret setting is configured AND the HTTP_STRIPE_SIGNATURE header is present. Since webhook_secret defaults to an empty string, the webhook processes attacker-controlled JSON payloads without any verification. This makes it possible for unauthenticated attackers to send fake Stripe webhook events with arbitrary order_id values in the metadata, mark any order as completed without payment, and gain unauthorized access to paid course content.
📍 영향받는 시스템
Masteriyo LMS – Online Course Builder plugin (WordPress) version 2.1.7 and below
⚔️ 공격 벡터
인증되지 않은 공격자가 조작된 Stripe 웹훅 JSON 페이로드를 전송하여 결제 상태를 조작함
🛡️ 대응 방법
플러그인을 최신 버전으로 업데이트하고, webhook_secret 설정이 비어있지 않은지 확인하십시오.
🔧 검증 코드
출력된 플러그인 목록에서 Masteriyo LMS의 버전을 확인하여 2.1.7 이하인지 점검하십시오.
wp plugin list --allow-root | grep -E 'masteriyo-lms'