🇰🇷 한글 설명
WooCommerce용 WBW Product Filter 플러그인(3.4.6 이하)의 'wpf_fid' JSON 파라미터에 입력값 검증과 출력 이스케이프가 부족하여 반사형 XSS가 발생합니다. 3.4.3 패치는 getVar() 경로에만 absint()를 적용하고 JSON 디코딩된 filterSettings 경로는 누락하여 여전히 취약합니다.
💡 쉬운 설명
공격자가 만든 악성 링크를 사용자가 클릭하면 해당 페이지에서 악성 스크립트가 실행될 수 있습니다. 로그인하지 않은 공격자도 이 공격을 시도할 수 있습니다.
🇺🇸 원문 (English)
The Product Filter for WooCommerce by WBW plugin for WordPress is vulnerable to Reflected Cross-Site Scripting via 'wpf_fid' JSON Parameter in all versions up to, and including, 3.4.6 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that execute if they can successfully trick a user into performing an action such as clicking on a link. The vulnerability persists in versions that received the 3.4.3 patch because absint() was applied only to the getVar() read path, leaving the wpf_fid value read from the JSON-decoded filterSettings payload entirely unsanitized.
📍 영향받는 시스템
WordPress WooCommerce용 WBW Product Filter 플러그인 3.4.6 이하 전 버전 (3.4.3 패치 이후 버전 포함)
⚔️ 공격 벡터
조작된 wpf_fid JSON 파라미터가 포함된 URL을 피해자가 클릭하도록 유도하여 反射형 XSS 스크립트를 실행
🛡️ 대응 방법
플러그인을 패치된 최신 버전(3.4.6 초과)으로 업데이트하고, wpf_fid 값을 JSON 디코딩 후에도 absint() 등으로 검증하며 출력 시 esc_attr() 등으로 이스케이프 처리
🔧 검증 코드
출력된 버전이 3.4.6 이하이면 취약한 상태이므로 즉시 업데이트가 필요하며, 3.4.6 초과이면 패치된 버전입니다.
wp plugin get wbw-product-filter --field=version 2>/dev/null || grep -m1 'Version' $(find /var/www -path '*wbw*product*filter*' -name '*.php' 2>/dev/null | head -1)