🇰🇷 한글 설명
GitHub Branch Source 플러그인에서 자격증명 ID 목록 조회 시 권한을 검사하지 않아, Overall/Read 권한만 있는 사용자도 유효한 자격증명 ID를 획득할 수 있는 취약점입니다. 이는 다른 보안 문제와 결합되어 자격증명 탈취에 악용될 수 있습니다.
💡 쉬운 설명
Jenkins 플러그인이 비밀번호 목록을 권한 없이 누구나 볼 수 있도록 했습니다. 공격자가 이 정보를 이용해 다른 방법과 함께 비밀번호를 탈취할 수 있습니다.
🇺🇸 원문 (English)
GitHub Branch Source provides a list of applicable credential IDs to allow users configuring a job to select the one they'd like to use. This functionality did not check permissions, allowing any user with Overall/Read permission to get a list of valid credentials IDs. Those could be used as part of an attack to capture the credentials using another vulnerability.
📍 영향받는 시스템
Jenkins GitHub Branch Source plugin (정확한 버전 정보 필요, 2017년 이전 버전)
⚔️ 공격 벡터
Overall/Read 권한을 가진 사용자가 플러그인 API를 통해 자격증명 ID 목록을 열람 후 다른 취약점과 조합해 실제 자격증명 탈취
🛡️ 대응 방법
Jenkins GitHub Branch Source plugin을 최신 버전으로 업데이트하여 권한 검사 로직 추가
🔧 검증 코드
Jenkins에 설치된 github-branch-source 플러그인 존재 여부를 확인하고, 표시된 플러그인의 버전이 CVE-2017-1000087 보안 패치 버전 이상인지 확인합니다.
ls /var/lib/jenkins/plugins/ 2>/dev/null | grep -i github-branch-source || curl -s http://localhost:8080/pluginManager/api/json 2>/dev/null | grep -o '"shortName":"[^"]*github-branch[^"]*"'