Rustプログラミング言語の新しい重大度の高い脆弱性が報告されました. この欠陥は、許可を必要とせずに、公開されたシステムからファイルとディレクトリを削除するために悪用される可能性があります.
「RustSecurityResponseWGは、stdが::fs::remove_dir_all標準ライブラリ関数は、シンボリックリンクを有効にする競合状態に対して脆弱です。 (CWE-363). 攻撃者はこのセキュリティの問題を利用して、特権プログラムをだまして、他の方法ではアクセスまたは削除できないファイルやディレクトリを削除させる可能性があります。,」公式アドバイザリによると.
脆弱性にはCVE-2022-21658識別子が割り当てられています.
CVE-2022-21658をどのように悪用できるか?
この欠陥は、攻撃者が脆弱なシステムへの非特権アクセスを取得して、と呼ばれるシステムディレクトリを削除する可能性がある場合に機能する可能性があります。 センシティブ/, しかし、彼らにはそうするための許可がありませんでした.
stdの場合::fs::remove_dir_allはシンボリックリンクをたどりました, アクセスできるディレクトリを削除する特権プログラムを見つけることができます (temp/と呼ばれる), temp/fooからsensitive/へのシンボリックリンクを作成します, 特権プログラムがfoo/を削除するのを待ちます. 特権プログラムは、再帰的に削除しながら、temp/fooからsensitive/へのシンボリックリンクをたどります。, 機密性の高い/削除される結果, アドバイザリーは言った.
これらの攻撃を防ぐために注意してください, std::fs::remove_dir_allには、シンボリックリンクの再帰的な削除に対する保護がすでにあります. でも, そのチェックが標準ライブラリに正しく実装されていなかった, TOCTOUになります (チェック時間使用時間) 競合状態.
シンボリックリンクをたどらないようにシステムに指示するのではなく, 標準ライブラリは、削除しようとしているものがシンボリックリンクであるかどうかを最初にチェックしました. さもないと, ディレクトリを再帰的に削除します.
説明されたケースは競合状態を作成しました, 攻撃者がディレクトリを作成し、それをチェックと実際の削除の間のシンボリックリンクに置き換える可能性がある場所. 最初の試みで攻撃が成功する可能性は高くないことに注意してください。. しかし、研究者の実験は、彼らが数秒以内にそれを確実に実行できることを明らかにしました.
影響を受けるRustバージョン?
CVE-2022-21658はRustのバージョンに影響します 1.0.0 さびを通して 1.58.0. ベンダーの計画は、Rustをリリースすることでした 1.58.1 1月に 20, これには、この脆弱性の緩和策が含まれます.
バージョン前のmacOSに注意する必要があります 10.10 およびREDOXには、攻撃を適切に軽減するための使用可能なAPIがありません, したがって、パッチを適用したツールチェーンを使用しても脆弱です。.
マルウェアの作成者も言及するのは不思議です 悪意のあるプログラミングでRustを使用する. 2つの地下フォーラムでRecordedFutureとMalwareHunterTeamによって、サービスとしての新しいランサムウェアプレーヤーが検出されました. ALPVHおよびBlackCatとして知られています, ランサムウェアグループが最初にRust言語を使用しました. これは、Rustでコーディングされた3番目のランサムウェア株でした, 他の2つは実験的です.