🇰🇷 한글 설명
WordPress용 LatePoint 플러그인 5.7.1 이하 버전에서 발생하는 IDOR(부적절한 직접 객체 참조) 취약점입니다. 인증되지 않은 공격자가 순차적인 invoice_id를 사용하여 타인의 송장 정보를 조회하거나 결제 의도 데이터를 조작하여 기존 결제 프로세스를 방해할 수 있습니다.
💡 쉬운 설명
해커가 숫자만 바꿔가며 다른 사람의 결제 정보를 마음대로 들여다보거나 결제 과정을 망가뜨릴 수 있는 보안 약점입니다. 이로 인해 정상적인 결제가 취소되거나 고객의 결제 데이터가 잘못 처리될 위험이 있습니다.
🇺🇸 원문 (English)
The Appointment Booking Plugin – LatePoint | Calendar & Scheduling for WordPress plugin for WordPress is vulnerable to Insecure Direct Object Reference in versions up to, and including, 5.7.1 via the OsPaypalConnectController::create_order_for_transaction() action registered as a public (unauthenticated) route through wp_ajax_nopriv_latepoint_route_call. The handler loads an OsInvoiceModel by a sequential integer 'invoice_id' with no access-key/UUID or ownership check (the sibling Stripe and Razorpay handlers require a 128-bit access-key UUID via OsInvoicesHelper::get_invoice_by_key), and then calls OsTransactionIntentHelper::create_or_update_transaction_intent() which persists a transaction intent tied to the target invoice's customer_id, order_id and charge_amount and regenerates its intent_key before the PayPal-configured guard is reached. This makes it possible for unauthenticated attackers to enumerate invoices belonging to arbitrary customers, create unauthorized transaction-intent rows linked to another customer's data, and overwrite the intent_key of any in-flight NEW-status transaction intent — invalidating the intent_key that legitimate Stripe/Razorpay flows are waiting on and breaking payment webhooks for those customers.
📍 영향받는 시스템
LatePoint – Calendar & Scheduling for WordPress plugin (versions up to and including 5.7.1)
⚔️ 공격 벡터
인증되지 않은 상태에서 wp_ajax_nopriv_latepoint_route_call를 통해 조작된 invoice_id를 전달하여 공격
🛡️ 대응 방법
LatePoint 플러그인을 최신 보안 패치가 적용된 버전으로 즉시 업데이트하십시오.
🔧 검증 코드
출력된 결과에서 LatePoint 플러그인의 버전이 5.7.1 이하인지 확인하십시오.
wp plugin list --status=active | grep -i 'latepoint'