Urgent Alert for Developers: Fix the Critical Fiber Go CVE-2024-25124 Vulnerability Now
2024/02/22 SecurityOnline — Fiber Go Web フレームワークを使用する開発者にとって必要なことは、CORS ミドルウェアの深刻な脆弱性への速やかな対処である。脆弱性 CVE-2024-25124 (CVSS 9.4) は、CORS コンフィグレーションにおけるワイルドカード・オリジン (*) を許可し、それと同時にクレデンシャルの有効化も可能にしてしまう。Fiber は Go Web フレームワークであり、Go 用の最速 HTTP エンジンである Fasthttp 上に構築されている。そのデザインは、メモリ・アロケーションを不要にするものであり、迅速な開発のためのパフォーマンスを念頭に置いたものとなっている。

問題:過度に許可的な CORS
CORS は、異なるドメイン間で、Web アプリがリソースを安全に共有するための重要なメカニズムである。したがって、CORS のコンフィグレーションを誤ると、攻撃者に対して開かれたドアを作ってしまう可能性が生じる。Fiber の脆弱性 CVE-2024-25124 は、ワイルドカード・オリジン (*) と有効な認証情報を組み合わせた、コンフィグレーションの可能性に起因する。この組み合わせは、Web セキュリティのベスト・プラクティスに反しており、以下のような侵害の可能性を生み出す:
- 不正なデータアクセス: 機密性の高いユーザー情報が、悪意の Web サイトに流出する可能性がある。
- クロスサイト・リクエスト・フォージェリ (CSRF): ユーザーを騙した攻撃者が、Web アプリ上で有害なアクションを実行する可能性がある。
- その他の Web エクスプロイト: この侵入経路から、その他の Web ベース攻撃が生じる可能性がある。
Fiber Go のアドバイザリには、「CORS ミドルウェアの脆弱性により、Web アプリに欠陥のあるコンフィグが生じ、多様なサイバー攻撃にいたる恐れがある。具体的に言うと、”Access-Control-Allow-Origin” ヘッダーをワイルドカード (*) に設定し、同時に “Access-Control-Allow-Credentials” を “true” に設定することが可能であり、推奨されるセキュリティのベスト・プラクティスに反している」と記されている。
誰が影響を受けるのか?
Fiber のバージョン 2.52.1 未満を用いて構築されたアプリケーションは、すべて脆弱である。使用しているバージョンが不明な場合には、直ちにアップグレードすることが重要となる。
自分自身を守る
Fiber バージョン 2.52.1 以降において、この問題は修正されている。アップグレードを急いでほしい。
手動によるレビュー: 既存の CORS コンフィグを再確認してほしい。認証情報が有効になっている場合には、ワイルドカード・オリジン (*) 決して許可してはいけない。以下は、CORS 設定が安全であることを確認するための解決策である:
func New(config …Config) fiber.Handler { if cfg.AllowCredentials && cfg.AllowOrigins == “*” { panic(“[CORS] Insecure setup, ‘AllowCredentials’ is set to true, and ‘AllowOrigins’ is set to a wildcard.”) } // Return new handler goes below } The middleware will not allow insecure configurations when using AllowCredentials and AllowOrigins
Security Best Practices:セキュアな CORS コンフィグを熟知するための、PortSwigger の記事は、理解を深めるための優れたリソースである。
Fiber Go の脆弱性ですが、ミスコンフィグとワイルドカードの組み合わせで、たいへんな事態を引き起こす可能性があります。ご利用のチームは、確認とアップグレードをお急ぎください。また、Qiita に 「Fiberとは(golang)」という記事がありますので、よろしければ、ご参照ください。
You must be logged in to post a comment.