🇰🇷 한글 설명
Discussion Board – WordPress Forum Plugin의 2.6.0 이하 버전에는 사용자 프로필의 Website(user_url) 필드 처리 시 출력 이스케이프가 부족한 저장형 크로스사이트 스크립팅(XSS) 취약점이 존재합니다. 인증된 Subscriber 이상 권한의 공격자가 댓글 작성자 링크에 악성 스크립트를 삽입할 수 있습니다. 해당 토픽을 열람하는 사용자의 브라우저에서 스크립트가 실행될 수 있습니다.
💡 쉬운 설명
포럼 플러그인이 회원의 홈페이지 주소를 안전하게 처리하지 않아, 악의적인 사용자가 주소란에 숨긴 코드가 다른 방문자 브라우저에서 실행될 수 있습니다. 이를 통해 로그인 정보 등이 탈취될 위험이 있습니다.
🇺🇸 원문 (English)
The Discussion Board – WordPress Forum Plugin plugin for WordPress is vulnerable to Stored Cross-Site Scripting in versions up to, and including, 2.6.0 via the user profile Website (user_url) field. This is due to insufficient output escaping in the ctdb_filter_comment_author_name() callback hooked to get_comment_author_link, which interpolates the raw user_url value into a single-quoted href attribute without esc_url() or esc_attr(). This makes it possible for authenticated attackers, with subscriber-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses a Discussion Board topic containing the attacker's reply.
📍 영향받는 시스템
WordPress용 Discussion Board 플러그인 2.6.0 이하 버전
⚔️ 공격 벡터
구독자 이상 권한의 인증된 공격자가 프로필 Website 필드에 악성 스크립트를 넣고 댓글을 작성하면, 해당 토픽을 열람하는 사용자에게 스크립트가 실행됩니다.
🛡️ 대응 방법
플러그인을 2.6.0 초과 최신 버전으로 업데이트하고, 업데이트가 어려우면 플러그인을 비활성화하거나 사용자 Website 필드 입력값을 검증·이스케이프 처리합니다.
🔧 검증 코드
출력된 version 값이 2.6.0 이하이면 취약한 버전이므로 즉시 업데이트가 필요하며, 2.6.0을 초과하면 패치된 것으로 판단합니다. 명령이 아무 결과도 내지 않으면 플러그인이 설치되지 않았거나 경로가 다른 것입니다.
wp plugin list --name=discussion-board --fields=name,version,status 2>/dev/null || grep -rh "Version:" /var/www/html/wp-content/plugins/discussion-board/*.php 2>/dev/null | head -1