🇰🇷 한글 설명
WordPress의 Divi 테마에서 발생하는 DOM 기반 저장형 XSS 취약점입니다. et_pb_video_slider_item 쇼트코드 내 image_src 속성이 적절히 검증되지 않아, 인증된 공격자가 악성 스크립트를 삽입할 수 있습니다. 해당 스크립트는 사용자가 캐러셀 썸네일에 마우스를 올릴 때 실행됩니다.
💡 쉬운 설명
웹사이트의 이미지 슬라이더 설정에 몰래 악성 코드를 심어두는 취약점입니다. 사용자가 슬라이더 이미지에 마우스를 가져다 대는 순간, 공격자가 의도한 해킹 동작이 실행될 수 있습니다.
🇺🇸 원문 (English)
The Divi theme for WordPress is vulnerable to DOM-Based Stored Cross-Site Scripting via the `image_src` attribute of the `et_pb_video_slider_item` shortcode in all versions up to, and including, 4.27.6. This is due to the `image_src` field not being included in the `$url_options` whitelist (which only contains `url`, `button_link`, `button_url`), so it never receives `esc_url_raw()` at save time. On the server side, the value is rendered into a `data-image` HTML attribute using `esc_attr()`, which encodes double quotes as `"`. However, the client-side JavaScript carousel code in `custom.unified.js` reads this attribute using jQuery's `.data('image')`, which returns the browser-decoded value (with `"` decoded back to `"`). The decoded value is then concatenated directly into an HTML string and injected into the DOM via `jQuery.after()` without re-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 hovers over the carousel thumbnail.
📍 영향받는 시스템
WordPress Divi Theme (버전 4.27.6 및 그 이하 모든 버전)
⚔️ 공격 벡터
Contributor 권한 이상의 인증된 사용자가 쇼트코드의 image_src 속성에 악성 스크립트를 삽입하여 공격
🛡️ 대응 방법
Divi 테마를 최신 버전으로 업데이트하여 보안 패치를 적용하십시오.
🔧 검증 코드
출력된 결과에서 divi 플러그인의 버전이 4.27.6 이하인지 확인하십시오.
wp-cli plugin list --allow-root | grep -E 'divi'