Fiber Go の深刻な脆弱性 CVE-2024-25124 が FIX:CORS ミドルウェアの要注意ミスコンフィグ

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 の記事は、理解を深めるための優れたリソースである。