Rust and Goネットワークライブラリで見つかった脆弱性により、IP検証が妨げられます

最近 脆弱性に関する情報が公開されました 言語の標準ライブラリで見つかった Rust and Go、 です IPアドレスの取り扱いミスに関連 アドレス分析関数にXNUMX進数を使用します。

eが言及されているこれらの脆弱性により、有効なアドレスの検証を回避できます。nアプリケーション。たとえば、サーバー側の要求スプーフィング攻撃が実行されたときに、ループバックインターフェイスアドレスまたはイントラネットサブネットへのアクセスを整理します。

これらXNUMXつの言語の脆弱性 IPアドレス文字列は仕様で実現されています あなたがいるので、ゼロベース 理論的には、それらはXNUMX進数として解釈されるべきですが、 これらのグリッチを引き起こす問題は、多くのライブラリがこれを無視し、ゼロを破棄することです。 最終的には値をXNUMX進数として扱います。

たとえば、これらのバグでIPアドレスがどのように解釈されるかを理解するために、0177進数の127は0177.0.0.1進数で127.0.0.1であり、攻撃者は値「XNUMX」を指定するリソースを要求できます。 XNUMX進数として、これのXNUMX進表記は「XNUMX」です。

それが理由です 問題のあるライブラリのXNUMXつを使用する場合、 アプリケーションはアドレスの出現を検出しません サブネット0177.0.0.1の127.0.0.1ですが、実際には、リクエストを送信するときにアドレス「0177.0.0.1」を呼び出すことができます。これは、誤解により、ネットワーク機能がこれを127.0.0.1として処理します。 同様に、イントラネットアドレスへのアクセスは、攻撃者が悪用の可能性を評価するさまざまな値を指定することにより、だまされて検証される可能性があります。

の側に さび、問題は標準ライブラリ「std :: net」の対象であることが判明しました これはすでに「CVE-2021-29922」にカタログ化されています。 それはそれを説明します このライブラリのIPアドレスパーサーは、値の前のゼロを破棄します たとえば、「0177.0.0.1」は無効な値として解釈され、誤った結果が返されます。

rust-lang標準の「net」ライブラリでのXNUMX進文字列入力の検証が正しくないため、認証されていないリモートの攻撃者が、rust-lang std :: netに依存する多くのプログラムに対して不確定なSSRF、RFI、およびLFI攻撃を実行できます。 IPアドレスのオクテットは、有効なIPアドレスとして評価されるのではなく、削除されたままになります。

std :: net :: IpAddrライブラリを使用するアプリケーションについても言及されています 指定されたアドレスを解析するとき ユーザー別 SSRF攻撃の影響を受けやすい可能性があります (サーバー側の要求のなりすまし)、 RFI (リモートファイルインクルード)および BIA (ローカルファイルを含む)。 同様に、攻撃者は127.0.026.1を入力できますが、これは実際には127.0.22です。

たとえば、攻撃者がstd :: net :: IpAddrに基づくWebアプリケーションにIPアドレスを送信すると、3進数の入力データを入力してSSRFを引き起こす可能性があります。 オクテットが08桁の場合、攻撃者は悪用可能なIPアドレスを送信できます。最小の悪用可能なオクテット099はサービス拒否につながり、最大の悪用可能なオクテットXNUMXはサービス拒否につながります。 

この脆弱性についてもっと知りたい場合 Rustでは、詳細を確認できます 次のリンクで。 また、この脆弱性はRust1.53.0ブランチで修正されたとのことです。

すぐに 影響する問題に To Goでは、これは標準ライブラリ«net»の対象であると述べられています。 そしてそれはすでにCVE-2021-29923の下にリストされています。 説明では、 認証されていないリモートの攻撃者がSSRF、RFI、およびLFI攻撃を実行できるようにします golangの組み込みnet.ParseCIDR関数に依存する多くのプログラムでは不確定です。 個々のCIDRIPオクテットは、有効なIPオクテットとして評価されるのではなく、削除されます。

たとえば、攻撃者が値00000177.0.0.1を渡す可能性があります。この値は、net.ParseCIDR関数でチェックされると、177.0.0.1 / 24ではなく127.0.0.1/24として解析されます。 この問題は、Kubernetesプラットフォームでも発生します。 この脆弱性は、Goバージョン1.16.3およびベータバージョン1.17で修正されました。

あなたはそれについてもっと学ぶことができます この脆弱性について 次のリンクで。


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。