🇰🇷 한글 설명
WordPress의 TableOn – WordPress Posts Table Filterable 플러그인 1.0.4.4 이하 버전에서 저장형 XSS 취약점이 발견되었습니다. 'tableon_button' 숏코드의 속성값에 대한 입력값 검증 및 출력 이스케이프 처리가 미흡하여, 인증된 공격자가 악성 스크립트를 삽입할 수 있습니다.
💡 쉬운 설명
플러그인의 특정 기능을 사용할 때 입력한 글자가 제대로 걸러지지 않아 발생하는 문제입니다. 권한이 있는 사용자가 악성 코드를 페이지에 심어두면, 다른 사용자가 해당 페이지를 볼 때 코드가 실행될 수 있습니다.
🇺🇸 원문 (English)
The TableOn – WordPress Posts Table Filterable plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'tableon_button' shortcode in all versions up to and including 1.0.4.4. This is due to insufficient input sanitization and output escaping on user-supplied shortcode attributes such as 'class', 'help_link', 'popup_title', and 'help_title'. The do_shortcode_button() function extracts these attributes without sanitization and passes them to TABLEON_HELPER::draw_html_item(), which concatenates attribute values into HTML using single quotes without escaping (line 29: $item .= " {$key}='{$value}'"). 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.
📍 영향받는 시스템
TableOn – WordPress Posts Table Filterable plugin (버전 1.0.4.4 및 그 이하 모든 버전)
⚔️ 공격 벡터
Contributor 이상의 권한을 가진 공격자가 'tableon_button' 숏코드의 속성(class, help_link 등)에 악성 스크립트를 삽입하여 페이지에 저장
🛡️ 대응 방법
플러그인을 최신 버전으로 업데이트하거나, 입력값 검증 및 출력 이스케이프가 적용된 패치를 적용해야 합니다.
🔧 검증 코드
출력된 결과에서 TableOn 플러그인의 버전이 1.0.4.4 이하인지 확인합니다.
wp plugin list --status=active | grep -i 'tableon' && wp plugin list --all | grep -E 'tableon' | awk '{print $2 " " $3}'