🇰🇷 한글 설명
Themify Builder 플러그인(7.8.4 이하 버전)의 Custom Font(tb_cf) 게시물 'variations' 반복 필드에서 입력값 정제와 출력 이스케이프가 부족해 저장형 XSS가 발생합니다. 기여자(Contributor) 이상 권한을 가진 공격자가 Custom Fonts 관리자 목록 페이지에 스크립트를 삽입할 수 있습니다.
💡 쉬운 설명
글을 쓸 수 있는 계정을 가진 사람이 특정 설정값에 악성 스크립트를 숨길 수 있습니다. 관리자가 해당 페이지를 열면 그 스크립트가 실행되어 권한이 탈취될 수 있습니다.
🇺🇸 원문 (English)
The Themify Builder plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'variations' repeater field of Custom Font (tb_cf) posts in versions up to, and including, 7.8.4. This is due to insufficient input sanitization and output escaping on the variations post meta: Themify_Metabox::_save_meta() only passes the value through wp_kses_data() when the field type is 'textbox' or 'textarea', so the 'repeater' field writes attacker-controlled sub-fields (style, woff/woff2/ttf/svg/eot URLs) to update_post_meta() verbatim, and Themify_Custom_Fonts::render_columns() later echoes those values unescaped inside a <style> block on the Custom Fonts admin listing. 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 (specifically, the Custom Fonts admin listing).
📍 영향받는 시스템
WordPress Themify Builder 플러그인 7.8.4 이하 버전
⚔️ 공격 벡터
기여자 이상 권한의 계정으로 Custom Font 게시물의 variations 필드에 악성 스크립트를 저장한 뒤, 관리자가 Custom Fonts 목록을 열면 실행됨
🛡️ 대응 방법
Themify Builder를 최신 버전으로 업데이트하고, 업데이트 전까지 기여자 권한 사용자를 제한하며 의심스러운 tb_cf 게시물 내용을 점검
🔧 검증 코드
출력된 버전이 7.8.4 이하이면 취약하며, 7.8.5 이상이면 패치가 적용된 것입니다.
wp plugin get themify-builder --field=version 2>/dev/null || grep -m1 'Version:' wp-content/plugins/themify-builder/themify-builder.php 2>/dev/null