🇰🇷 한글 설명
GitHub Enterprise Server의 노트북 뷰어에서 포트 검증 미흡으로 인한 SSRF 취약점이 발견되었습니다. 공격자는 응답 시간 차이를 이용해 내부 비밀 정보를 추출할 수 있으며, 이를 통해 최종적으로 원격 코드 실행(RCE)까지 가능합니다.
💡 쉬운 설명
서버가 외부 주소를 확인할 때 포트 번호를 제대로 확인하지 않아 발생하는 문제입니다. 해커가 서버를 이용해 내부의 비밀번호를 한 글자씩 알아낸 뒤, 서버를 마음대로 조종할 수 있습니다.
🇺🇸 원문 (English)
A server-side request forgery (SSRF) vulnerability was identified in the notebook viewer of GitHub Enterprise Server. The notebook viewer validated the scheme and host of a user-supplied URL but did not validate the port, allowing requests to be directed to internal services listening on other ports of the same appliance. Response bodies were not returned to the requester, but response timing acted as an oracle that allowed instance secrets to be extracted character by character. An extracted secret could then be used in a separate interaction with an internal service to obtain remote code execution on the appliance. Exploitation required network access to the instance and was unauthenticated when private mode was disabled, or required any authenticated user when private mode was enabled. This vulnerability affected GitHub Enterprise Server versions 3.17 through 3.22 and was fixed in versions 3.22.1, 3.21.6, 3.20.8, 3.19.12, 3.18.15, and 3.17.21. This vulnerability was reported through the GitHub Bug Bounty program.
📍 영향받는 시스템
GitHub Enterprise Server versions 3.17 through 3.22
⚔️ 공격 벡터
SSRF를 통한 응답 시간 기반의 사이드 채널 공격 및 추출된 비밀 정보를 이용한 내부 서비스 공격
🛡️ 대응 방법
GitHub Enterprise Server를 수정된 버전(3.22.1, 3.21.6, 3.20.8, 3.19.12, 3.18.15, 3.17.21 이상)으로 업데이트하십시오.
🔧 검증 코드
명령어 실행 결과로 수정된 버전 중 하나가 출력되면 취약점이 해결된 상태입니다.
curl -s http://localhost/api/v3/connection | grep -E '"version": "(3.22.1|3.21.6|3.20.8|3.19.12|3.18.15|3.17.21)'