🇰🇷 한글 설명
GitHub Enterprise Server의 Git 서비스(babeld)에서 원격 코드 실행 취약점이 발견되었습니다. babeld가 SSH 라이브러리를 호출하는 동안 내부 컬렉션 참조를 보유하고 있었고, 재진입 콜백이 컬렉션을 수정하여 해당 참조를 무효화할 수 있었습니다. 이는 Use-After-Free로 이어질 수 있으며, 3.23 이전의 모든 릴리스에 영향을 미치고 3.22.3, 3.21.8, 3.20.10, 3.19.14에서 수정되었습니다.
💡 쉬운 설명
인스턴스에 계정과 SSH 접근 권한이 있는 공격자가 메모리 오류를 악용해 babeld 권한으로 임의 명령을 실행할 수 있는 문제입니다. 환경 변수에 저장된 비밀 정보가 노출될 수 있습니다.
🇺🇸 원문 (English)
A remote code execution vulnerability was identified in GitHub Enterprise Server in the Git service (babeld). babeld held references into internal collections while calling into the SSH library, where a re-entrant callback could modify a collection and invalidate those references. An attacker with an account and SSH access to the instance could leverage this use-after-free into a controlled write and run arbitrary commands as babeld, including disclosure of its environment secrets. Exploitation required per-build memory offsets; failed attempts crashed babeld. This affected all releases prior to 3.23 and was fixed in 3.22.3, 3.21.8, 3.20.10, and 3.19.14. This vulnerability was reported via the GitHub Bug Bounty program.
📍 영향받는 시스템
GitHub Enterprise Server 3.23 미만 버전 (수정: 3.22.3, 3.21.8, 3.20.10, 3.19.14 이상)
⚔️ 공격 벡터
계정과 SSH 접근 권한을 가진 인증된 공격자가 재진입 콜백을 통해 Use-After-Free를 유발하고 메모리를 조작하여 임의 명령을 실행
🛡️ 대응 방법
GitHub Enterprise Server를 3.23 이상 또는 해당 브랜치의 패치 버전(3.22.3, 3.21.8, 3.20.10, 3.19.14 이상)으로 업데이트
🔧 검증 코드
출력된 버전이 3.23 미만이면 취약하며, 해당 브랜치의 수정 버전(3.22.3, 3.21.8, 3.20.10, 3.19.14) 이상이면 패치된 것입니다.
ghe-version 2>/dev/null || cat /data/user/common/github-release 2>/dev/null