8 つの脆弱性が修正された Git アップデート

発行済み 分散ソース管理システム Git 2.24.1、2.23.1、2.22.2、2.21.1、2.20.2、2.19.3、2.18.2、2.17.3、2.16.6、2.15.4、および 2.14.62.24.1 の修正リリース.XNUMX では、攻撃者がファイル システム内の任意のパスを書き換えたり、リモートでコードを実行したり、「.git/」ディレクトリ内のファイルを上書きしたりすることを可能にする脆弱性が修正されました。従業員によって特定されたほとんどの問題
Microsoft Security Response Center によると、8 件の脆弱性のうち 5 件は Windows プラットフォームに固有のものです。

  • CVE-2019-1348 — ストリーミング コマンド「feature export-marks=path」許可する ラベルを任意のディレクトリに書き込みます。これは、チェックされていない入力データで「git fast-import」操作を実行するときに、ファイル システム内の任意のパスを上書きするために使用できます。
  • CVE-2019-1350 - コマンドライン引数のエスケープが正しくない 導くかもしれない ssh:// URL を使用した再帰的クローン作成中の攻撃者コードのリモート実行。特に、バックスラッシュで終わる引数のエスケープ (「test \」など) が正しく処理されませんでした。この場合、引数を二重引用符で囲むと、最後の引用符がエスケープされ、コマンド ラインでオプションの置換を整理できるようになりました。
  • CVE-2019-1349 — 特定の条件下で Windows 環境でサブモジュールを再帰的にクローン作成する場合 (「clone -recurse-submodules」) できた 同じ git ディレクトリの 1 回の使用をトリガーします (.git、git~2、git~1、および git~N は NTFS では XNUMX つのディレクトリとして認識されますが、この状況は git~XNUMX についてのみテストされました)。これを使用して整理できます。ディレクトリ「.git」に書き込みます。コードの実行を組織化するために、攻撃者は、たとえば、.git/config ファイル内のチェックアウト後のハンドラーを介してスクリプトを置き換えることができます。
  • CVE-2019-1351 — 「C:\」などのパスを変換するときの Windows パス内の文字ドライブ名のハンドラーは、単一文字のラテン語識別子を置き換えることのみを目的として設計されていましたが、「substletter:path」を介して割り当てられた仮想ドライブを作成する可能性は考慮されていませんでした。 。このようなパスは絶対パスではなく相対パスとして扱われるため、悪意のあるリポジトリのクローンを作成するときに、作業ディレクトリ ツリーの外側の任意のディレクトリにレコードを編成することが可能でした (たとえば、ディスク内で数字や Unicode 文字を使用する場合)名前 - 「1:\what\the\ hex.txt」または「ä:\tschibät.sch」)。
  • CVE-2019-1352 — Windows プラットフォームで作業する場合、ファイル名に「:stream-name:stream-type」属性を追加することで作成される NTFS の代替データ ストリームを使用します。 許可された 悪意のあるリポジトリのクローンを作成するときに、「.git/」ディレクトリ内のファイルを上書きします。たとえば、NTFS の名前「.git::$INDEX_ALLOCATION」は、「.git」ディレクトリへの有効なリンクとして扱われました。
  • CVE-2019-1353 — WSL (Windows Subsystem for Linux) 環境で Git を使用して作業ディレクトリにアクセスする場合 使用されていない NTFS での名前操作に対する保護 (FAT 名変換による攻撃が可能でした。たとえば、「.git」は「git~1」ディレクトリ経由でアクセスできました)。
  • CVE-2019-1354 -
    機会 名前にバックスラッシュが含まれるファイル (「a\b」など) を含む悪意のあるリポジトリのクローンを作成する場合、Windows プラットフォームの「.git/」ディレクトリに書き込みます。これは Unix/Linux では許容されますが、 Windows 上のパス。

  • CVE-2019-1387 — サブモジュール名のチェックが不十分な場合、標的型攻撃を組織化するために使用される可能性があり、再帰的にクローンが作成されると、潜在的に攻撃が行われる可能性があります。 導くかもしれない 攻撃者のコードを実行します。 Git は、別のサブモジュールのディレクトリ内にサブモジュール ディレクトリを作成することを妨げませんでしたが、これはほとんどの場合混乱を招くだけでしたが、再帰的クローン作成プロセス中に別のモジュールの内容が上書きされる可能性を妨げませんでした (たとえば、サブモジュール ディレクトリ「hippo」と「hippo/hooks」は「.git/modules/hippo/」と「.git/modules/hippo/hooks/」として配置され、hippo のフック ディレクトリはトリガーされたフックをホストするために個別に使用できます。

Windows ユーザーは、Git のバージョンを直ちに更新し、更新されるまで未検証のリポジトリのクローンを作成しないことをお勧めします。まだ Git バージョンを緊急に更新できない場合は、攻撃のリスクを軽減するために、チェックされていないリポジトリで「git clone —recurse-submodules」および「git submodule update」を実行しないこと、「git を使用しない」ことをお勧めします。チェックされていない入力ストリームを使用して高速インポート」を実行し、NTFS ベースのパーティションにリポジトリのクローンを作成しません。

セキュリティを強化するために、新しいリリースでは、.gitmodules 内の「submodule.{name}.update=!command」形式の構成体の使用も禁止されています。ディストリビューションの場合、ページでパッケージ更新のリリースを追跡できます。 Debianの,Ubuntu, RHEL, SUSE/openSUSE, フェドーラ, アーチ, 頭の中, FreeBSDの.

出所: オープンネット.ru

コメントを追加します