🇰🇷 한글 설명
WordPress의 Divi 테마 Social Media Follow 모듈 내 skype_url 숏코드 속성에서 저장형 XSS 취약점이 발견되었습니다. 데이터 검증 과정에서 특정 필드가 화이트리스트에서 누락되고 불충분한 필터링이 적용되어, 공격자가 악성 스크립트를 삽입할 수 있습니다. 이 취약점을 통해 권한을 가진 공격자는 페이지 내에서 임의의 웹 스크립트를 실행할 수 있습니다.
💡 쉬운 설명
웹사이트의 소셜 미디어 링크 설정 부분에 악성 코드를 몰래 심을 수 있는 보안 약점입니다. 이를 통해 공격자는 사용자가 해당 링크를 클릭하거나 페이지를 볼 때 나쁜 코드가 실행되도록 만들 수 있습니다.
🇺🇸 원문 (English)
The Divi theme for WordPress is vulnerable to Stored Cross-Site Scripting via the `skype_url` shortcode attribute of the Social Media Follow module in all versions up to, and including, 4.27.6. This is due to a three-part sanitization failure: (1) the `skype_url` field is not included in the `$url_options` whitelist in `class-et-builder-element.php`, so it never invokes `esc_url_raw()` during shortcode processing, (2) the render code in `SocialMediaFollowItem.php` explicitly skips `esc_url()` for Skype URLs (`! $is_skype ? esc_url( $url ) : $skype_url`), and (3) only `sanitize_text_field()` is applied, which preserves single and double quote characters allowing attribute breakout. The unsanitized value is interpolated directly into a single-quoted `href` attribute (`href='{$social_network_link_url}'`). 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 interacts with the injected element.
📍 영향받는 시스템
WordPress Divi theme (버전 4.27.6 및 그 이하 모든 버전)
⚔️ 공격 벡터
Contributor 이상의 권한을 가진 공격자가 Social Media Follow 모듈의 skype_url 속성에 악성 스크립트를 포함한 값을 저장하여 공격
🛡️ 대응 방법
Divi 테마를 최신 버전으로 업데이트하여 보안 패치를 적용하십시오.
🔧 검증 코드
출력된 테마 버전이 4.27.6 이하이면 취약한 상태입니다.
wp-cli option get theme_version --allow-root | grep -E '^[0-9.]*$' && [ $(echo "$(wp-cli option get theme_version --allow-root) <= 4.27.6" | bc) -eq 1 ]