🇰🇷 한글 설명
GitHub Enterprise Server의 인증 우회 취약점으로, admin 권한을 가진 사용자가 요청 본문의 owner_id 파라미터를 조작하여 다른 repository의 secret scanning push protection 설정을 변경할 수 있습니다. URL의 repository에 대해서만 인증을 확인하지만 실제 작업은 요청 본문에 지정된 다른 repository에 적용됩니다. 신뢰할 수 있는 기존 사용자만 bypass reviewer로 추가 가능하므로 영향은 제한적입니다.
💡 쉬운 설명
GitHub 관리자가 자신의 repository에서만 승인받아야 하는 권한으로 다른 사람의 repository 설정을 변경할 수 있는 보안 문제입니다. 다만 이미 신뢰받은 사용자만 추가할 수 있어서 심각도는 낮습니다.
🇺🇸 원문 (English)
An authorization bypass vulnerability was identified in GitHub Enterprise Server that allowed an attacker with admin access on one repository to modify the secret scanning push protection delegated bypass reviewer list on another repository by manipulating the owner_id parameter in the request body. Authorization was verified against the repository in the URL, but the action was applied to a different repository specified in the request body. The impact is limited to assigning existing trusted users as bypass reviewers; it does not allow adding arbitrary external users. This vulnerability affected all versions of GitHub Enterprise Server prior to 3.21 and was fixed in versions 3.14.25, 3.15.20, 3.16.16, 3.17.13, 3.18.7, 3.19.4 and 3.20.1. This vulnerability was reported via the GitHub Bug Bounty program.
📍 영향받는 시스템
GitHub Enterprise Server 3.20 이하 (3.14.25, 3.15.20, 3.16.16, 3.17.13, 3.18.7, 3.19.4, 3.20.1에서 수정)
⚔️ 공격 벡터
admin 권한 사용자가 API 요청의 owner_id 파라미터를 조작하여 승인되지 않은 repository의 보호 설정 변경
🛡️ 대응 방법
GitHub Enterprise Server를 3.14.25, 3.15.20, 3.16.16, 3.17.13, 3.18.7, 3.19.4, 3.20.1 이상으로 업그레이드
🔧 검증 코드
버전 정보에서 3.20.1 이상 또는 해당하는 패치된 버전인지 확인 (3.14.25+, 3.15.20+, 3.16.16+, 3.17.13+, 3.18.7+, 3.19.4+, 3.20.1+)
curl -s http://your-ghe-server/api/v3/meta 2>/dev/null | grep -o '"version":[^,]*' || grep -i version /opt/github/VERSION 2>/dev/null