🇰🇷 한글 설명
WordPress의 Global Body Mass Index Calculator 플러그인 1.2 이하 버전에서 저장형 XSS 취약점이 발견되었습니다. GBMI_Calc_Widget::widget() 함수 내에서 사용자 입력값에 대한 적절한 검증과 이스케이프 처리가 이루어지지 않아 발생합니다. 이를 통해 권한을 가진 공격자가 악성 스크립트를 삽입하여 사용자의 브라우저에서 실행될 수 있습니다.
💡 쉬운 설명
웹사이트의 특정 기능을 사용하는 과정에서 입력한 코드가 필터링되지 않고 그대로 저장되는 문제입니다. 공격자가 악성 코드를 심어두면, 해당 페이지를 방문하는 일반 사용자의 정보를 훔치거나 공격할 수 있습니다.
🇺🇸 원문 (English)
The Global Body Mass Index Calculator plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'gbmicalc' shortcode in versions up to, and including, 1.2. This is due to insufficient input sanitization and output escaping on user-supplied shortcode attributes in the GBMI_Calc_Widget::widget() function. Shortcode attributes are extracted directly into local variables via @extract($args) and then echoed unescaped into an HTML style attribute (height/width) and HTML body context (title), allowing attribute-breakout payloads. 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.
📍 영향받는 시스템
WordPress Global Body Mass Index Calculator plugin (버전 1.2 이하)
⚔️ 공격 벡터
기여권한(Contributor) 이상의 권한을 가진 공격자가 'gbmicalc' 숏코드의 속성값에 악성 스크립트를 삽입하여 페이지에 저장
🛡️ 대응 방법
해당 플러그인을 최신 버전으로 업데이트하거나, 입력값에 대한 검증 및 출력 시 이스케이프 처리가 포함된 패치를 적용해야 합니다.
🔧 검증 코드
명령어 결과에 버전이 1.2 이하로 표시되면 해당 취약점에 노출된 상태입니다.
wp plugin list --name=global-body-mass-index-calculator --format=json | grep -E '"version":"[0-1]\.[0-2]"'