🇰🇷 한글 설명
GitHub Enterprise Server에서 웹 페이지 생성 중 입력 데이터의 적절한 중립화가 이루어지지 않아 공격자가 제어하는 HTML을 필터 컴포넌트에서 렌더링할 수 있는 취약점이 발견되었습니다. 이 취약점은 민감한 정보를 유출하는데 사용될 수 있으며, 공격자는 마일스톤, 이슈, 풀 리퀘스트 등과 같은 엔티티의 이름을 생성하거나 수정할 수 있는 권한이 필요합니다.
💡 쉬운 설명
GitHub Enterprise Server의 필터 컴포넌트에서 공격자가 제어하는 HTML을 렌더링할 수 있는 취약점이 발견되었습니다. 이 취약점은 민감한 정보를 유출하는데 사용될 수 있으며, 공격자는 특정 엔티티의 이름을 생성하거나 수정할 수 있는 권한이 필요합니다. 이 취약점은 GitHub Enterprise Server의 모든 버전에 영향을 미쳤습니다.
🇺🇸 원문 (English)
An Improper Neutralization of Input During Web Page Generation vulnerability was identified in GitHub Enterprise Server that allowed attacker controlled HTML to be rendered by the Filter component (search) across GitHub that could be used to exfiltrate sensitive information. An attacker would require permissions to create or modify the names of milestones, issues, pull requests, or similar entities that are rendered in the vulnerable filter/search components. This vulnerability affected all versions of GitHub Enterprise Server prior to 3.20 and was fixed in versions 3.19.1, and 3.18.2, 3.17.8, 3.16.11, 3.15.15, and 3.14.20. This vulnerability was reported via the GitHub Bug Bounty program.
📍 영향받는 시스템
GitHub Enterprise Server의 모든 버전 (3.20 이전 버전)
⚔️ 공격 벡터
공격자가 제어하는 HTML을 필터 컴포넌트에서 렌더링하여 민감한 정보를 유출
🛡️ 대응 방법
GitHub Enterprise Server를 3.19.1, 3.18.2, 3.17.8, 3.16.11, 3.15.15, 또는 3.14.20 버전으로 업데이트합니다.
🔧 검증 코드
로컬 Linux PC에서 Python을 설치하고, 위의 코드를 실행하여 GitHub Enterprise Server 버전을 확인합니다. 코드를 실행하기 전에 Python이 설치되어 있는지 확인합니다. 코드 실행 결과는 JSON 형식으로 출력되며, 'result' 필드의 값이 '취약'일 경우 GitHub Enterprise Server 버전을 확인해야 합니다.
python -c "import requests; response = requests.get('https://github.com/enterprise/version'); if response.status_code == 200: print('{{"result": "취약", "reason": "GitHub Enterprise Server 버전 확인 필요"}}') else: print('{{"result": "양호", "reason": "GitHub Enterprise Server 버전 확인 불가"}}')"