🇰🇷 한글 설명
Jenkins Coverage Plugin 2.3054.ve1ff7b_a_a_123b_ 및 이전 버전에서 설정된 커버리지 결과 ID를 검증하지 않는 취약점이 발견되었습니다. 공격자가 Item/Configure 권한을 이용해 REST API로 javascript: 스킴 URL을 식별자로 설정하면 저장형 XSS 공격이 가능합니다.
💡 쉬운 설명
Jenkins 플러그인의 보안 검사 허점을 이용해 악성 코드를 심는 공격입니다. 권한이 있는 사용자가 API를 통해 특수하게 조작된 주소를 입력하면, 다른 사용자가 해당 페이지를 볼 때 악성 스크립트가 실행될 수 있습니다.
🇺🇸 원문 (English)
Jenkins Coverage Plugin 2.3054.ve1ff7b_a_a_123b_ and earlier does not validate the configured coverage results ID when creating coverage results, only when submitting the job configuration through the UI, allowing attackers with Item/Configure permission to use a `javascript:` scheme URL as identifier by configuring the job through the REST API, resulting in a stored cross-site scripting (XSS) vulnerability.
📍 영향받는 시스템
Jenkins Coverage Plugin 2.3054.ve1ff7b_a_a_123b_ 및 그 이전 버전
⚔️ 공격 벡터
REST API를 사용하여 검증되지 않은 javascript: 스킴 URL을 커버리지 결과 ID로 설정
🛡️ 대응 방법
Jenkins Coverage Plugin을 최신 보안 패치 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 2.3054.ve1ff7b_a_a_123b_보다 높은지 확인하십시오.
curl -s http://<JENKINS_URL>/plugin/coverage-plugin/api/json | grep -E 'version' | sed 's/.*"version":"\([^"]*\)".*/\1/'