🇰🇷 한글 설명
Jenkins HTML Publisher Plugin 427 이전 버전에서 job name과 URL이 legacy wrapper file에서 제대로 이스케이프되지 않아 저장된 XSS 취약점이 발생합니다. Item/Configure 권한을 가진 공격자가 악의적인 job name이나 URL을 입력하여 다른 사용자의 세션을 탈취하거나 악성 코드를 실행할 수 있습니다.
💡 쉬운 설명
Jenkins에서 프로젝트 이름이나 링크를 저장할 때 위험한 코드를 필터링하지 않아서, 관리자 권한이 있는 사람이 악의적인 코드를 심을 수 있습니다. 다른 사람이 그 프로젝트 페이지를 보면 악의적인 코드가 자동으로 실행됩니다.
🇺🇸 원문 (English)
Jenkins HTML Publisher Plugin 427 and earlier does not escape job name and URL in the legacy wrapper file, resulting in a stored cross-site scripting (XSS) vulnerability exploitable by attackers with Item/Configure permission.
📍 영향받는 시스템
Jenkins HTML Publisher Plugin 버전 427 이하 (모든 영향받는 버전)
⚔️ 공격 벡터
Item/Configure 권한이 있는 사용자가 job name 또는 URL에 XSS payload를 포함시켜 저장하면, 다른 사용자가 해당 job 페이지 접근 시 payload가 실행됨
🛡️ 대응 방법
Jenkins HTML Publisher Plugin을 428 버전 이상으로 즉시 업그레이드
🔧 검증 코드
htmlpublisher 플러그인의 버전을 확인하여 428 이상인지 검증합니다. 428 미만이면 취약한 상태입니다.
curl -s http://[jenkins-host]:8080/pluginManager/api/json 2>/dev/null | grep -A3 'htmlpublisher' | grep 'version'