🇰🇷 한글 설명
WordPress의 Contact Form 7 – PayPal & Stripe Add-on 플러그인에서 결제 데이터 검증 미흡으로 인한 결제 우회 취약점이 발견되었습니다. 공격자는 IPN 페이로드의 결제 금액이나 통화 등을 실제 주문 정보와 비교하지 않는 점을 악용하여, 소액 결제만으로 고액 주문을 완료 상태로 조작할 수 있습니다.
💡 쉬운 설명
결제 완료 확인 과정에서 실제 지불한 금액이 맞는지 제대로 확인하지 않는 보안 허점이 있습니다. 이를 통해 공격자는 아주 적은 금액만 결제하고도 비싼 물건을 구매한 것처럼 시스템을 속일 수 있습니다.
🇺🇸 원문 (English)
The Contact Form 7 – PayPal & Stripe Add-on plugin for WordPress is vulnerable to Payment Bypass via Insufficient Verification of Data Authenticity in all versions up to, and including, 2.4.9. Although `cf7pp_paypal_ipn_handler()` correctly validates IPN authenticity by posting back to PayPal with `cmd=_notify-validate`, it fails to compare the IPN payload's `mc_gross` (payment amount), `mc_currency`, or `receiver_email` fields against the corresponding stored order values before passing the attacker-controlled `invoice` field directly to `cf7pp_complete_payment()`, which marks the order completed after only an integer cast with no amount verification. This makes it possible for unauthenticated attackers to mark arbitrary high-value pending orders as fully paid by making a minimal real PayPal payment and crafting an IPN whose `invoice` parameter references the targeted order, effectively completing purchases without tendering the required payment amount.
📍 영향받는 시스템
Contact Form 7 – PayPal & Stripe Add-on plugin (버전 2.4.9 이하 모든 버전)
⚔️ 공격 벡터
조작된 IPN(Instant Payment Notification) 메시지를 전송하여 특정 주문 번호(invoice)를 강제로 결제 완료 상태로 변경
🛡️ 대응 방법
해당 플러그인을 최신 보안 패치가 적용된 버전으로 즉시 업데이트하십시오.
🔧 검증 코드
출력된 플러그인 버전이 2.4.9 이하인지 확인하여 취약 여부를 판단합니다.
wp plugin list --allow-root | grep 'contact-form-7-paypal-stripe-addon'