🇰🇷 한글 설명
WordPress용 Bookly 플러그인 28.2 이하 버전에서 부적절한 직접 객체 참조(IDOR) 취약점이 발견되었습니다. 공격자는 인증 없이 순차적인 주문 ID를 열거하여 타인의 주문 토큰, 일정 정보를 탈취하거나 임의의 예약을 영구적으로 삭제할 수 있습니다.
💡 쉬운 설명
해커가 다른 사람의 예약 번호를 무작위로 입력하여 개인 정보를 훔쳐보거나 예약을 마음대로 삭제할 수 있는 보안 결함입니다. 로그인하지 않은 외부인도 시스템의 중요한 데이터를 조작할 수 있어 매우 위험합니다.
🇺🇸 원문 (English)
The Bookly plugin for WordPress is vulnerable to Insecure Direct Object Reference in versions up to, and including, 28.2 via the 'bookly_get_form_id', 'bookly_render_complete', 'bookly_add_to_calendar' and 'bookly_rollback_order' AJAX actions. This is due to the 'bookly_get_form_id' handler blindly storing the attacker-controlled 'order_id' from the submitted form_data into a new booking session, which the 'bookly_render_complete' handler then trusts to look up and return the corresponding Order's secret token without verifying that the current session created that order. This makes it possible for unauthenticated attackers to enumerate sequential order IDs, disclose other customers' order tokens, retrieve calendar/appointment information via 'bookly_add_to_calendar' and permanently delete arbitrary non-completed bookings via 'bookly_rollback_order', which cascade-deletes the customer_appointment and (when no other customers are attached) the underlying appointment.
📍 영향받는 시스템
WordPress Bookly plugin versions up to and including 28.2
⚔️ 공격 벡터
AJAX 액션(bookly_get_form_id 등)을 통한 조작된 order_id 전송 및 세션 탈취
🛡️ 대응 방법
Bookly 플러그인을 최신 보안 패치가 적용된 버전으로 즉시 업데이트하십시오.
🔧 검증 코드
출력된 Bookly 플러그인의 버전이 28.2 이하인지 확인하십시오.
wp plugin list --status=active | grep -i 'bookly' | awk '{print $2 " " $3}'