🇰🇷 한글 설명
VikRentCar Car Rental Management System 플러그인(1.4.10 이하)의 'className' 파라미터에서 입력값 검증과 출력 이스케이프가 부족해 저장형 XSS가 발생합니다. 기여자(Contributor) 이상 권한의 인증된 공격자가 페이지에 악성 스크립트를 삽입할 수 있으며, wp_kses_post()와 do_blocks()의 처리 방식 때문에 필터링을 우회합니다.
💡 쉬운 설명
글을 쓸 수 있는 권한을 가진 사용자가 웹사이트 페이지에 악성 코드를 숨겨 넣을 수 있습니다. 다른 사람이 그 페이지를 열면 악성 코드가 실행되어 로그인 정보 등이 빼앗길 수 있습니다.
🇺🇸 원문 (English)
The VikRentCar Car Rental Management System plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'className' parameter in all versions up to, and including, 1.4.10 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. wp_kses_post() applied at save time does not neutralize the payload because the injection lands in an HTML-attribute context where only a raw double-quote is needed to break out, and block-comment JSON encoding of that quote is decoded back to a literal character by do_blocks() at render time.
📍 영향받는 시스템
WordPress용 VikRentCar Car Rental Management System 플러그인 1.4.10 이하 버전
⚔️ 공격 벡터
기여자 이상 권한의 계정으로 로그인해 className 파라미터에 큰따옴표로 속성을 탈출하는 스크립트를 삽입하면, 해당 페이지 방문자의 브라우저에서 저장형 XSS가 실행됩니다.
🛡️ 대응 방법
VikRentCar 플러그인을 1.4.11 이상 버전으로 업데이트하거나, 취약 버전을 비활성화하고 className 입력값에 대해 속성 컨텍스트 이스케이프를 적용하세요.
🔧 검증 코드
출력된 버전 번호가 1.4.10 이하이면 취약하며, 1.4.11 이상이면 패치가 적용된 것입니다. 명령이 아무것도 출력하지 않으면 플러그인 경로를 확인하세요.
wp plugin get vikrentcar --field=version 2>/dev/null || grep -m1 'Version:' wp-content/plugins/vikrentcar/*.php 2>/dev/null