🇰🇷 한글 설명
Content Pilot – Autoblogging & Affiliate Marketing Suite 플러그인(2.2.4 이하)에서 원격 RSS 기사의 HTML meta description이 sanitization 없이 게시글로 저장되어 저장형 XSS가 발생합니다. 관리자 권한(unfiltered_html)으로 게시되므로 공격자가 제어하는 RSS 소스를 통해 비인증 공격자도 악성 스크립트를 주입할 수 있습니다.
💡 쉬운 설명
이 플러그인은 외부 뉴스 피드의 내용을 워드프레스 글로 자동 게시합니다. 악의적인 피드 내용이 필터링 없이 글로 저장되어 방문자 브라우저에서 악성 스크립트가 실행될 수 있습니다.
🇺🇸 원문 (English)
The Content Pilot – Autoblogging & Affiliate Marketing Suite plugin for WordPress is vulnerable to Stored Cross-Site Scripting in versions up to, and including, 2.2.4. This is due to the plugin extracting the HTML meta description from each remotely-fetched article (WPCP_Readability::parse_meta()), piping that value through the article template substitution and html_entity_decode() in WPCP_Module::insert_post(), and then calling wp_insert_post() after switching the current user to the configured campaign author (an Administrator with the unfiltered_html capability by default) — so no wp_kses_post sanitization is applied to the attacker-controlled HTML before it is persisted as post_content and rendered on the front end. This makes it possible for unauthenticated attackers who control the content of any RSS source an administrator has configured a Content Pilot RSS campaign to consume to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
📍 영향받는 시스템
Content Pilot – Autoblogging & Affiliate Marketing Suite 플러그인 2.2.4 이하 버전이 설치된 WordPress 사이트
⚔️ 공격 벡터
공격자가 관리자가 구성한 RSS 캠페인 소스의 기사 meta description에 스크립트를 삽입하면 해당 내용이 게시글로 저장되어 방문자 페이지에서 실행됨
🛡️ 대응 방법
플러그인을 2.2.5 이상 버전으로 업데이트하거나, 수정될 때까지 플러그인을 비활성화하고 신뢰할 수 없는 RSS 캠페인을 제거하며, 게시글 출력에 wp_kses_post 적용
🔧 검증 코드
출력된 버전이 2.2.4 이하이면 취약하며, 2.2.5 이상이면 패치된 상태입니다. 아무 출력이 없으면 플러그인이 설치되지 않았거나 경로를 확인해야 합니다.
wp plugin get content-pilot --field=version 2>/dev/null || grep -m1 'Version:' wp-content/plugins/content-pilot/*.php 2>/dev/null