🇰🇷 한글 설명
WordPress의 PrivateContent Free 플러그인 1.2.0 이하 버전에서 'align' 숏코드 속성을 통한 저장형 XSS 취약점이 발견되었습니다. 입력값에 대한 적절한 검증 및 출력 이스케이프 처리가 누락되어, 권한을 가진 공격자가 악성 스크립트를 삽입할 수 있습니다.
💡 쉬운 설명
웹사이트 관리 권한이 있는 사용자가 특정 코드를 조작하여 다른 사용자의 브라우저에서 악성 코드가 실행되게 만들 수 있는 결함입니다. 이를 통해 사용자의 정보를 탈취하거나 웹사이트를 변조할 위험이 있습니다.
🇺🇸 원문 (English)
The PrivateContent Free plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'align' shortcode attribute in the [pc-login-form] shortcode in all versions up to, and including, 1.2.0. This is due to insufficient input sanitization and output escaping on the 'align' attribute. Specifically, the attribute value flows from the shortcode through pc_login_form() to pc_static::form_align(), where it is directly concatenated into an HTML class attribute without esc_attr() or any escaping. This makes it possible for authenticated attackers, with Contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
📍 영향받는 시스템
WordPress PrivateContent Free plugin (버전 1.2.0 및 그 이하 모든 버전)
⚔️ 공격 벡터
Contributor 이상의 권한을 가진 공격자가 [pc-login-form] 숏코드의 'align' 속성에 악성 스크립트를 삽입하여 페이지에 저장
🛡️ 대응 방법
PrivateContent Free 플러그인을 최신 버전으로 업데이트하거나, 해당 숏코드 사용 시 입력값 검증 로직을 적용해야 합니다.
🔧 검증 코드
명령어 결과에 버전이 1.2.0 이하로 나타나면 해당 취약점에 노출된 상태입니다.
wp plugin list --name=privatecontent-free --format=json | grep -E '"version":"[0-1]\.[0-2]\.[0-9]"'