🇰🇷 한글 설명
Jenkins Poll SCM 플러그인이 API 요청을 POST 메서드로 제한하지 않아 CSRF 공격에 취약합니다. 공격자가 특정 프로젝트의 폴링을 강제로 트리거할 수 있으며, 이는 플러그인에서 정의한 권한 검증을 우회합니다.
💡 쉬운 설명
Jenkins의 Poll SCM 플러그인에서 소스 코드 업데이트 확인 기능(폴링)을 악의적인 웹사이트를 통해 누구든 원격으로 실행시킬 수 있습니다. 이는 권한 있는 사용자만 할 수 있어야 할 작업을 권한 확인 없이 실행하게 됩니다.
🇺🇸 원문 (English)
Poll SCM Plugin was not requiring requests to its API be sent via POST, thereby opening itself to Cross-Site Request Forgery attacks. This allowed attackers to initiate polling of projects with a known name. While Jenkins in general does not consider polling to be a protection-worthy action as it's similar to cache invalidation, the plugin specifically adds a permission to be able to use this functionality, and this issue undermines that permission.
📍 영향받는 시스템
Jenkins Poll SCM Plugin 1.3.0 이전 버전
⚔️ 공격 벡터
CSRF를 이용한 GET/POST 요청으로 Jenkins API(/polling) 엔드포인트 직접 호출
🛡️ 대응 방법
Poll SCM Plugin을 1.3.1 이상으로 업그레이드하여 POST 요청만 수락하도록 변경
🔧 검증 코드
반환된 버전이 1.3.0 이하면 취약하고, 1.3.1 이상이면 패치된 상태입니다.
curl -s http://JENKINS_URL/manage/pluginManager/api/json | grep -i 'poll' | grep -oE '"version":"[^"]+"'