0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ingress-nginx CVE-2025-1974について

Last updated at Posted at 2025-03-26

Ingress-nginx CVE-2025-1974 について

本記事では、2025年3月24日に公式ブログで公開された脆弱性CVE-2025-1974について、備忘録的に一部のみ説明します。

1. 脆弱性の概要

Ingress Nginxのwebhookサーバでは、AdmissionConfigurationが設定されておらず、追加の認証機構も実装されていません。そのため、ネットワーク上でIngress Nginxと通信可能な任意のプロセスが、admission webhookと同一の形式のHTTPリクエストを送信することが可能です。これにより、攻撃者は内部で任意のコマンドを実行できる状態となっています。

2. 技術的背景

Ingress Nginxは、Kubernetes環境におけるIngress Controllerとして動作しており、内部ではadmission webhookを利用したリクエスト処理を行っています。しかし、webhookサーバ自体にAdmissionConfigurationが実装されていません。

  • AdmissionConfiguration未設定
    webhookサーバに対する認証やアクセス制限が存在せず、且つNetworkPolicyも設定されていない環境の場合だとWebhook Serverに対するHTTPリクエストがそのまま処理される状態になっています。

  • 内部でのコマンド実行処理
    PR差分で確認できる通り、内部でコマンドを実行する際に、ユーザーから渡されたパラメータが検証なしに連結され、exec.Commandが呼び出されます。以下はそのコードの一部抜粋です。

    // ExecCommand instantiates an exec.Cmd object to call nginx program
    func (nc NginxCommand) ExecCommand(args ...string) *exec.Cmd {
        cmdArgs := []string{}
    
        cmdArgs = append(cmdArgs, "-c", cfgPath)
        cmdArgs = append(cmdArgs, args...)
        //nolint:gosec // Ignore G204 error
        return exec.Command(nc.Binary, cmdArgs...)
    }
    

    これにより、悪意のあるHTTPリクエストを送信することで、コマンドライン引数に任意の値を注入し、リモートでコード実行が可能となる可能性があります。GitHub IssueコメントおよびPR差分にて詳細な議論が行われています。

3. まとめ

本脆弱性により、Ingress Nginxとネットワーク的に接続されている全てのプロセスがIngress Nginxに対して攻撃できる状態です。
Ingress Nginxの脆弱性CVE-2025-1974は、AdmissionConfigurationが設定されておらず、追加の認証機構も存在しないため、webhookがネットワーク上の全てのプロセスに対して開かれている状態且つリクエストの内容から任意のコマンドを実行できる状態等、複合的な要因が絡んでいます。運用環境におけるリスクを低減するため、速やかに案内に従い、対策を講じることが求められます。

参考情報

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?