🇰🇷 한글 설명
WordPress의 My Calendar – Accessible Event Manager 플러그인 3.8.3 이하 버전에서 저장형 XSS 취약점이 발견되었습니다. 공격자가 'fallback' 숏코드 속성에 16진수로 인코딩된 스크립트를 삽입하면, 렌더링 과정에서 디코딩되어 실행될 수 있습니다.
💡 쉬운 설명
게시글 작성 권한이 있는 사용자가 특수하게 조작된 코드를 저장하면, 다른 사용자가 해당 페이지를 볼 때 악성 스크립트가 실행될 수 있는 보안 결함입니다. 인코딩된 코드가 시스템을 통과한 뒤 실제 코드로 변하는 점을 악용합니다.
🇺🇸 원문 (English)
The My Calendar – Accessible Event Manager plugin for WordPress is vulnerable to Stored Cross-Site Scripting via 'fallback' Shortcode Attribute in all versions up to, and including, 3.8.3 due to insufficient input sanitization and output 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 accesses an injected page. The bypass relies on hex-encoded shortcode attribute payloads (e.g. \x3cscript\x3e), which wp_kses_post cannot strip on save because they appear as literal backslash sequences rather than real HTML tags; WordPress core's shortcode_parse_atts() then calls stripcslashes() at render time, decoding the escapes into real angle brackets before they reach the unescaped sink.
📍 영향받는 시스템
My Calendar – Accessible Event Manager plugin (버전 3.8.3 및 그 이하 모든 버전)
⚔️ 공격 벡터
인증된 기여자(Contributor) 이상의 권한을 가진 공격자가 'fallback' 숏코드 속성에 16진수 인코딩된 페이로드를 삽입하여 공격
🛡️ 대응 방법
플러그인을 최신 버전으로 업데이트하거나, 입력값 검증 및 출력 이스케이프 처리가 강화된 패치를 적용하십시오.
🔧 검증 코드
명령어 결과에 버전이 3.8.3 이하로 나타나면 해당 취약점에 노출된 상태입니다.
wp-cli plugin list --name='my-calendar' --format=json | grep -E '"version": "[0-3]\.[0-8]\.[0-3]"'