🇰🇷 한글 설명
Payment Gateway WordPress 플러그인 2.2.0 이하 버전은 은행의 결제 알림 콜백을 인증하는 데 사용하는 공유 비밀키가 설정되어 있는지 확인하지 않습니다. 이로 인해 비밀키가 설정되지 않은 환경에서 인증되지 않은 공격자가 위조된 알림으로 WooCommerce 주문을 결제 완료로 표시할 수 있으며, 비밀키 설정 여부와 관계없이 대기 중인 주문을 실패 상태로 변경할 수 있습니다.
💡 쉬운 설명
이 취약점은 온라인 쇼핑몰의 결제 확인 과정에서 발생합니다. 해커가 가짜 결제 완료 신호를 보내 실제 결제 없이 주문을 완료 처리하거나, 정상 주문을 실패로 바꿀 수 있습니다.
🇺🇸 원문 (English)
The Payment Gateway WordPress plugin through 2.2.0 does not ensure a shared secret is configured before using it to authenticate the bank's payment-notification callback, allowing unauthenticated attackers to forge a valid notification and mark any WooCommerce order as paid on installs where the secret has not been set, and the same callback lets them move any pending order to a failed state whether or not the secret is configured.
📍 영향받는 시스템
Payment Gateway WordPress 플러그인 2.2.0 이하 버전을 사용하는 WooCommerce 쇼핑몰
⚔️ 공격 벡터
인증되지 않은 공격자가 결제 알림 콜백 엔드포인트에 위조된 요청을 전송하여 주문 상태를 변경
🛡️ 대응 방법
플러그인을 최신 버전으로 업데이트하고, 결제 게이트웨이 공유 비밀키를 반드시 설정하며, 콜백 요청의 서명 검증을 확인
🔧 검증 코드
출력된 버전이 2.2.0 이하이면 취약하므로 업데이트가 필요하며, 2.2.0보다 높은 버전이면 패치된 것으로 판단합니다.
wp plugin get payment-gateway --field=version 2>/dev/null || grep -i 'version' wp-content/plugins/payment-gateway/*.php 2>/dev/null | head -5