CVE-2024-27302 (CVSS 9.1): go-zero Framework Authorization Bypass Vulnerability
2024/03/06 SecurityOnline — 人気の go-zero Web/RPC フレームワークに、深刻な脆弱性 CVE-2024-27302 が発見された。この脆弱性の悪用に成功した攻撃者は、CORS (Cross-Origin Resource Sharing) ポリシーをバイパスする可能性がある。
go-zero には、数多くのエンジニアリング手法が組み込まれている。レジリエンスの高い設計であり、煩雑なサービスの安定性を高めるために開発されたものであり、数千万人のユーザーを抱えるサイトへ向けて、長年にわたってサービスを提供してきた。
その go-zero の CORS Filter 機能に重大な脆弱性があることを、cokeBeer として知られるセキュリティ研究者が発見した。この CVSS 9.1 と評価される脆弱性は、Web アプリケーションのセキュリティに不可欠な、CORS ポリシーの保護を損なう可能性を持つため、深刻なセキュリティ・リスクがもたらされる。
この脆弱性は、go-zero の CORS フィルターの処理方法に起因する。isOriginAllowed 関数は、特定のドメインへのアクセスを制限するように設計されているが、検証のために strings.HasSuffix に依存している。そのため、”evil-victim.com” のような、特別に細工されたドメインを使用する攻撃者に、バイパスの機会を与えてしまう。
CVE-2024-27302 の PoC (Proof-of-concept) エクスプロイト・コードが、驚くほど簡単であることが、この脆弱性の深刻さを際立たせている。たとえば、not-safe.com のような許可されていないオリジンから、go-zero アプリケーションへのリクエストを作成することで、攻撃者は CORS フィルターをバイパスできる。攻撃者は、このバイパスにより事実上 CORS ポリシーを破壊し、不正なページがあたかも正当なユーザーやサービスであるかのようにリクエストを行い、データの取得を可能にする。
この脆弱性が悪用され、CORS ポリシーが破られると、以下のような攻撃が発生する可能性がある:
- クロスサイト攻撃:攻撃者は、正規ユーザーを装い、不正な Web サイトからリクエストを開始する可能性がある。
- データ窃取:アプリケーションから機密情報が抜き取られ、管理者とユーザーの両方に影響が生じる可能性がある。
この脆弱性に対して脆弱なのは、go-zero 1.4.4 未満のバージョンである。go-zero の開発チームは、この脆弱性は広範囲に悪用される可能性があり、数千万人のユーザーへの脅威であることを認識し、迅速にパッチをリリースした。go-zero 1.6.3 では、脆弱性のあるオリジン検証ロジックを修正し、不正なドメイン・アクセスを許していた抜け穴を塞ぐことで、この脆弱性に対処している。アップデートを行う際には、CORS ルールを再評価し、必要な制限をかけることが推奨される。
PoC もリリースされていますので、ご利用のチームは、ご確認ください。go-zero について調べてみまたところ、「さまざまなエンジニアリング手法を統合する Web および RPC のフレームワークである。柔軟な設計により、同じエンドでの安定性が保証され、完全な動作テストが行われる」と解説されていました、



You must be logged in to post a comment.