
PoC of CVE-2025-31864
워드프레스 플러그인
구성 요소 이름 Beam me up Scotty – Back to Top Button
취약한 버전 <= 1.0.23
구성 요소 슬러그 beam-me-up-scotty
구성 요소 링크 https://wordpress.org/plugins/beam-me-up-scotty/
취약점 분류 A3: Injection
취약점 유형 Cross Site Scripting (XSS)
관리자
Beam me up Scotty 플러그인 버전 1.0.23 이하에서는 '맨 위로 버튼' 사용자 정의 설정에 대한 데이터 유형 검증 및 이스케이프 처리 부족으로 인해 저장형 크로스 사이트 스크립팅 취약점이 존재합니다.
이러한 사용자 정의 설정은 관리자 권한이 있는 사용자만 접근할 수 있으며, 관리자 권한을 가진 공격자가 이 취약점을 악용할 경우 '맨 위로 버튼'이 표시되는 모든 페이지의 방문자가 크로스 사이트 스크립팅 공격에 노출됩니다.
Beam me up Scotty 플러그인 버전 1.0.23 이하가 설치 및 활성화된 워드프레스 사이트를 준비합니다.
'맨 위로 버튼'을 사용자 정의하는 메뉴(/wp-admin/themes.php?page=beam-me-up-scotty_settings)로 이동합니다.

프록시 도구(예: BurpSuite)에서 Intercept를 활성화한 상태에서 '맨 위로 버튼' 설정 메뉴 하단의 '저장' 버튼을 클릭하여 '맨 위로 버튼' 사용자 정의 설정을 저장하는 요청 패킷을 가로챕니다.

요청 페이로드에 있는 beam_me_up_scotty_bottom_indentation 페이로드 값을 다음과 같이 변경한 후 Forward를 수행합니다.
20px;}</style><script>alert("XSS")</script><style>foo{bottom:0

워드프레스 사이트에 접속한 후 XSS 취약점이 발생하는 것을 확인할 수 있습니다.


Beam me up Scotty 플러그인은 '맨 위로 버튼'의 사용자 정의 설정을 적용하기 위해 /wp-content/plugins/beam-me-up-scotty/library/includes/dynamic-css.php 파일을 실행합니다.
이 파일은 사용자 정의 설정을 스타일 태그 내에서 '맨 위로 버튼'의 스타일 속성 값으로 설정합니다. 이때 '맨 위로 버튼'의 사용자 정의 설정이 이스케이프 처리 없이 스타일 태그에서 참조되는 것을 확인할 수 있습니다.

따라서 PoC에서 확인된 바와 같이, XSS 공격 스크립트가 포함된 beam_me_up_scotty_bottom_indentation 페이로드가 입력되면, 그 값이 이스케이프 처리 없이 '맨 위로 버튼'의 스타일 속성 값으로 참조되어 스크립트가 실행됩니다.

결과적으로 워드프레스 사이트에 접속하면 다음 HTML 코드를 확인할 수 있습니다.
