🇰🇷 한글 설명
Amelia WordPress 플러그인 9.9.1 이하 버전에서 GetEventAttendeesCommandHandler::handle() 함수의 권한 검사가 누락되어, wpamelia-customer 역할 이상의 인증된 사용자가 임의의 이벤트 ID로 참석자 개인정보 CSV를 내보낼 수 있습니다. 이름, 이메일, 전화번호, 생년월일, 결제 정보 등이 노출될 수 있습니다.
💡 쉬운 설명
예약 플러그인 Amelia에 행사 참석자 명단을 확인하는 기능에 잘못된 권한 검사가 있습니다. 고객 계정으로 로그인한 사람이 다른 행사의 참석자 개인정보를 다운로드할 수 있습니다.
🇺🇸 원문 (English)
The Amelia plugin for WordPress is vulnerable to unauthorized access of attendee data due to a missing authorization check on the GetEventAttendeesCommandHandler::handle() function in versions up to, and including, 9.9.1. The handler only enforces the broad `amelia_read_events` capability — which the plugin's own `wpamelia-customer` role possesses — and does not verify that the authenticated user is an organizer/provider of the event referenced by the client-supplied `id` query parameter. This makes it possible for authenticated attackers, with wpamelia-customer-level access and above, to export the full CSV of attendee personally identifiable information (first/last name, email, phone, date of birth, gender, private notes, payment amounts/methods, WooCommerce order IDs, custom-field values, and uploaded-file URLs) for any Amelia event on the site by directly invoking the `/report/event/attendees` endpoint with an arbitrary event ID.
📍 영향받는 시스템
WordPress Amelia 플러그인 9.9.1 이하 버전
⚔️ 공격 벡터
인증된 고객(wpamelia-customer) 계정으로 로그인 후 /report/event/attendees 엔드포인트에 임의의 이벤트 ID를 넣어 참석자 CSV를 요청
🛡️ 대응 방법
Amelia 플러그인을 9.9.1 이후의 수정된 버전으로 즉시 업데이트하고, 필요 시 고객 계정 권한과 노출된 개인정보를 점검
🔧 검증 코드
출력된 버전이 9.9.1 이하이면 취약하므로 업데이트가 필요하며, 명령이 아무 결과도 내지 않으면 해당 플러그인이 이 시스템에 설치되어 있지 않은 것입니다.
wp plugin list --name=ameliabooking --fields=name,version,status 2>/dev/null || find /var/www -path '*ameliabooking*' -name 'ameliabooking.php' -exec grep -m1 'Version' {} \; 2>/dev/null