🇰🇷 한글 설명
WordPress용 GetPaid 플러그인 2.8.63 이전 버전에는 입력값 검증 취약점이 존재합니다. 인증되지 않은 공격자가 공개 결제 양식에서 음수 수량을 제출해 결제 금액을 0으로 만들 수 있으며, 이 경우 실제 결제 없이 송장이 결제 완료로 처리됩니다.
💡 쉬운 설명
결제 페이지에서 상품 수량을 마이너스로 입력하면 총 금액이 0원이 되어 실제로 돈을 내지 않고도 결제가 완료된 것으로 처리됩니다. 로그인 없이도 누구나 이런 방식으로 결제를 우회할 수 있습니다.
🇺🇸 원문 (English)
The GetPaid plugin for WordPress before 2.8.63 contains an improper input validation vulnerability that allows unauthenticated attackers to bypass payment processing by submitting a negative item quantity on a public payment form. Attackers can exploit the unchecked quantity value in process_item() to produce a negative line subtotal that reduces the invoice total to zero, causing process_free_payment() to mark the invoice as paid without any actual gateway charge.
📍 영향받는 시스템
WordPress GetPaid 플러그인 2.8.63 미만 버전
⚔️ 공격 벡터
인증 없이 공개 결제 폼에 음수 수량을 제출하여 소계를 음수로 만들고 송장 총액을 0으로 만든 뒤 무료 결제 처리 로직을 트리거
🛡️ 대응 방법
GetPaid 플러그인을 2.8.63 이상으로 즉시 업데이트하고, 수량 값이 양의 정수인지 서버 측에서 검증하는 로직이 적용되었는지 확인
🔧 검증 코드
출력된 버전이 2.8.63 미만이면 취약하므로 업데이트가 필요하고, 2.8.63 이상이면 해당 취약점이 패치된 상태입니다.
wp plugin get getpaid --field=version 2>/dev/null || grep -i 'Version:' wp-content/plugins/getpaid/getpaid.php 2>/dev/null