🇰🇷 한글 설명
WordPress의 Divi 테마에서 Dynamic Content 기능의 레거시 JSON 형식을 처리할 때 발생하는 저장형 XSS 취약점입니다. 저장 시 필터링을 우회하는 구조적 결함과 렌더링 시 메타 데이터에 대한 적절한 검증 부재로 인해 발생합니다. 이를 통해 기여자(Contributor) 권한 이상의 공격자가 악성 스크립트를 삽입할 수 있습니다.
💡 쉬운 설명
웹사이트 제작 도구인 Divi 테마의 허점을 이용해 악성 코드를 몰래 심을 수 있는 보안 약점입니다. 권한이 있는 사용자가 페이지에 코드를 입력하면, 다른 사용자가 해당 페이지를 볼 때 공격자의 스크립트가 실행될 수 있습니다.
🇺🇸 원문 (English)
The Divi theme for WordPress is vulnerable to Stored Cross-Site Scripting via the Dynamic Content feature's legacy JSON format in all versions up to, and including, 4.27.6. This is due to two compounding flaws: (1) the save-time sanitization filter `et_builder_sanitize_dynamic_content_fields()` only searches for dynamic content markers in the `@ET-DC@...@` format, but the rendering engine also supports a legacy JSON format that is silently converted at render time, completely bypassing the save-time filter, and (2) the `post_meta_key` resolver in `et_builder_filter_resolve_default_dynamic_content()` does not apply `wp_kses_post()` to the resolved meta value when `enable_html` is set to `on`, passing raw `get_post_meta()` output directly to the page. 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 Divi Theme (버전 4.27.6 및 그 이하 모든 버전)
⚔️ 공격 벡터
기여자 이상의 권한을 가진 공격자가 Dynamic Content의 레거시 JSON 형식을 사용하여 검증을 우회한 악성 스크립트를 삽입
🛡️ 대응 방법
Divi 테마를 최신 보안 패치가 적용된 버전으로 즉시 업데이트하십시오.
🔧 검증 코드
테마 관리 메뉴에서 Divi 테마의 버전이 4.27.6 이하인지 확인하십시오.
wp-cli version --allow-root | grep -i 'divi' || echo 'Check theme version manually via WordPress Dashboard'