SUSE SLES12セキュリティ更新プログラム:git(SUSE-SU-2020:0992-1)

critical Nessus プラグイン ID 135580

Language:

概要

リモートのSUSEホストに1つ以上のセキュリティ更新がありません。

説明

このgitの更新では、次の問題を修正します:

修正されたセキュリティ問題:

CVE-2020-5260:改行を含む細工されたURLを使用すると、資格情報ヘルパーの機構が欺かれて誤ったホストに資格情報を提供する可能性があります(bsc#1168930)。

修正された非セキュリティ問題:

gitがSHA256のサポートのために2.26.0に更新しました(bsc#1167890、jsc#SLE-11608):xinetdスニペットが削除されました

git-daemon用のSystem V initスクリプトが、同じ名前のsystemdサービスファイルで置き換えられました。

git 2.26.0:「git rebase」は、デフォルトで「merge」機構に基づく別のバックエンドを使用するようになりました。「rebase.backend」構成変数が「apply」に設定されたときの以前の動作に戻されました

スパースチェックアウトの処理を改善しました

多数のコマンドと内部機能の改善

git 2.25.1:「git commit」が、advisor.statusHintsを優先するようになりました

さまざまな更新、バグ修正、およびドキュメント更新

git 2.25.0:ブランチ記述(「git branch --edit-description」)がformat-patchコマンドによるカバーレターの本文の入力に使用されていました。これが件名も入力できるように強化されました。

いくつかのコマンドが、「 --pathspec-from-file」オプションを使用して、コマンドライン引数としてではなく、標準入力または指定ファイルからpathspecを取得するようになりました。

テストがSHA-2移行継続に備えるように更新しました。

「git name-rev」をやり直して、再帰呼び出しを回避します。

一部のサブディレクトリ内のすべてのファイルの名前がrootディレクトリに変更されると、ディレクトリの名前変更のヒューリスティックが、rootディレクトリへのサブディレクトリの名前変更/マージとしてのその検出に失敗する可能性がありましたが、修正されました。

HTTPトランスポートに、アロケーター/デアロケーターの不一致の可能性がありましたが、修正されました。

git 2.24.1:CVE-2019-1348:高速インポートの--export-marksオプションが、インストリームコマンド機能のexport-marks=...を介しても漏洩し、任意のパスの上書きを可能にします(bsc#1158785)

CVE-2019-1349:Windows上で、サブモジュールが再帰的に複製される場合に、特定の状況下でGitが同じGitディレクトリを2回使用するようにだまされる可能性がありました(bsc#1158787)

CVE-2019-1350:コマンドライン引数の間違った引用により、SSH URLと連結した再帰的な複製中のリモートコード実行につながる可能性がありました(bsc#1158788)

CVE-2019-1351:Windows上で、相対パスとしての米国英語のアルファベット以外のドライブ文字が間違っています(bsc#1158789)

CVE-2019-1352:Windows上で、NTFS Alternate Data Streamsが認識されていませんでした(bsc#1158790)

CVE-2019-1353:正規のWindowsドライブ上の作業ディレクトリにアクセスする際にLinux用Windowsサブシステムで実行したときに、NTFS保護がどれもアクティブになりませんでした(bsc#1158791)

CVE-2019-1354:Windows上で、ファイル名にバックスラッシュを含む追跡対象ファイルの書き込みが拒否されます(bsc#1158792)

CVE-2019-1387:サブモジュール名の検証が緩すぎることによる再帰的な複製の脆弱性により、リモートコード実行を介した攻撃の標的になる可能性がありました(bsc#1158793)

CVE-2019-19604:再帰的な複製とその後のサブモジュールの更新によって、ユーザーが明示的に要求していないにもかかわらず、リポジトリ内に含まれるコードが実行される可能性がありました(bsc#1158795)

asciidoctorを使用し、DocBook4スタイルシートを使用しないビルドを修正します。

git 2.24.0 コマンドラインパーサーが「--end-of-options 」表記を学習しました。

構成変数の(関連)グループのデフォルト設定に影響を与えるメカニズムが導入されました。

「git fetch」が、「--set-upstream」オプションを学習して、プッシュ先のプライベートフォークからの初めての複製を支援し、「git remote add」を介して真のアップストリームを追加してから、そこから「git fetch」を実行しました。

UI、ワークフロー、および機能の修正と改善、bash完了の修正

その一部がアップストリームをマージしました

Makefileで一部のドキュメントをダウンロードしていましたが、禁止されました

git 2.23.0:「format-patch」の「--base」オプションでは、前提条件パッチのpatch-idsが不安定な方法で計算されていましたが、「git patch-id

--stable」と互換性のある方法で計算されるように更新しました。

「git log」コマンドは、デフォルトで、--mailmapオプションが指定された場合と同様に動作します。

UI、ワークフロー、および機能の修正と改善

git 2.22.1:「git init
--template=<path><repo>」に指定された相対パス名は、「git init」が呼び出されるディレクトリに関連する必要がありましたが、リポジトリに関連付けられていたため、修正されました。 </repo></path>

同じリポジトリに接続されている別のワークツリーが破損した場合に「git worktree add」が失敗していましたが、修正されました。

コミットをツリーのように表示しようとすると「git am -i --resolved」でセグメンテーション違反が発生しましたが、修正されました。

「git merge --squash」は、コミットを作成せずに作業ツリーとインデックスを更新するように設計されています。これは、「--commit」オプションを追加することによって対処することができません。両方のオプションが指定された場合は、コマンドが動作を拒否するようになりました。

Unicode 12.1の幅テーブルへの更新。

「git request-pull」が、ローカルリポジトリと公開されたリポジトリでプルが依頼されたrefが異なる場合に警告するようになりました。

レイジークローンへの「git fetch」で、シンパックファイル内のデルタを完了するために必要なベースオブジェクトがフェッチされませんでしたが、修正されました。

URLデコーディングコードが更新され、%-<hex>-<hex>シーケンスの解析中に文字列の最後を越えないようになりました。 </hex></hex>

「git clean」は、lstat()を実行できない場合に、警告なしにパスをスキップしていました。現在は警告を表示するようになりました。

競合するパスを解決するための「git rm」で、パスが実際に削除される前に「needs merge」という内部メッセージが漏洩していました。これが、混乱の元になっています。
これは修正されました。

その他の複数のバグ修正とコードのクリーンアップ。

SuSEfirewall2がfirewalldで置き換えられたことによるSuSEfirewall2サービスの削除。[1]を参照してください。[1]:
https://lists.opensuse.org/opensuse-factory/2019-01/msg00490.html

git 2.22.0:レイジー/部分クローンの作成に使用されたフィルター指定「--filter=sparse:path=<path>」が削除されました。スパース指定としてのプロジェクトの一部であるblobの使用は、「--filter=sparse:oid=<blob>」オプション</blob></path>でまだサポートされています

「git checkout --no-overlay」を使用して、tree-ishからのパスをチェックアウトする新しいモードをトリガーできます。これにより、現在のインデックスと作業ツリー内に存在するが、tree-ish内には存在しないpathspecと一致するパスが可能になります。

4つの新しい構成変数{author,committer}.{name,email}が導入され、より具体的なケースでuser.{name,email}がオーバーライドされます。

「git branch」に新しいサブコマンド「--show-current」が増えました。

コマンドラインの完了(contrib/内)が、より多くのサブコマンドパラメーターを完了するようになりました。

完了ヘルパーコードは、リポジトリローカルの構成(利用可能な場合)に注意を払うようになりました。これにより、--list-cmdsは、たとえば、complete.commandsのリポジトリ固有の設定を優先することができます。

競合するマージの終了中にエディターに表示される競合するパスのリストは、クリーンアップモードが「scissors」に設定されている場合に、ユーザーがマージをより適切に説明可能な更新されたパスのリストやその他の情報のようにコメントアウトされても、scissorsの線上に表示されました。

Cに再実装された「git rebase」がORIG_HEADを正しく設定しませんでしたが、修正されました。

「git worktree add」が、競合状態になりやすい「find an available name with stat and then mkdir」を実行するために使用されていました。これは、mkdirを使用して、ループ内のEEXISTに対処することで修正されました。

bashとtar usrMerge用にgit-web AppArmorプロファイルを更新します(bsc#1132350)

git 2.21.0:これまでは、マージコミットで作業している場合は、「-m」(メインライン)オプションを「git cherry-pick」と「git revert」にしか使用できませんでした。Gitのこのバージョンは、「-m」オプションに対する引数が1である限り(つまり、親が1つだけで、リクエストがその最初の親に関連して選択するまたは取り消すこと)、単一親コミットで作業している場合に警告やエラーを表示しなくなりました。この変更により、挙動に依存するスクリプトが破損する可能性があります。

高速エクスポートと高速インポート用のマイナーな修正と機能。

「http.version」構成変数は、cURLライブラリの十分最近のバージョンで使用して、フェッチとプッシュの際にトークに使用されるHTTPのバージョンを強制できます。

「git push $there $src:$dst」は、$dstが完全修飾参照名」ではなく、エンドユーザーの意図が明らかでない場合に拒否します。

アップストリームからの「git multimail」を更新します。

現在時刻との差に応じて出力を変形させる新しい日付形式「--date=human」が導入されました。
「--date=auto:human」は、出力がページャーやターミナルに送信される場合はこの新しい形式(または既存の形式)を使用し、それ以外の場合はデフォルトの形式を使用するために使用できます。

ワークツリー作成の競合を修正します(bsc#1114225)。

git 2.20.1:ポータビリティの修正

過度に長いエイリアスが定義された場合に、「git help -a」が適切に機能しませんでした

run_command APIが欠落していたコマンドの実行に失敗した場合に、エラーメッセージが抑制されなくなりました

git 2.20.0:「git help -a」で詳細な出力が提供されるようになりました(「git help
-av」と同じ)。古い出力が必要な場合は、「git help --no-verbose
-a」を使用できます。

「git send-email」は、名前が「-by」で終わるトレーラー上でアドレス検索文字列を取得するようになりました。

「git format-patch」に、このバージョンと以前のカバーレター内(またはコメントとしての三破線の後ろ)の試みの違いを説明するために、新しい「--interdiff」オプションと「--range-diff」オプションが増えました。

開発者は。-Wunused-functionコンパイルオプションを使用するようになりました。

パスが欠落している(たとえば、手動で削除された)場合に、複数のワークツリーエントリで同じパスが登録される可能性のあるバグを修正します。また、必要に応じて、

--forceが適用可能なケースの数を増やします。

過度に大きなDocumentation/config.txtファイルは、数百万の小さな断片に分割されました。これにより、個々の断片をより簡単に影響を受けるコマンドのマニュアルページに含めることができます。

packstream内の無効な形式のデータや細工されたデータにより、コードが、エラーを報告する代わりに、割り当てられたバッファを越えて読み書きして中断させる可能性がありましたが、修正されました。

部分的なコミット中に縮小するとインデックスファイルが破損する、長期間存在するバグを修正します。

発生していないブランチにマージする「git merge」と「git pull」で、「--verify-signatures」が完全に無視されていましたが、修正されました。

...およびその他の複数の機能と修正

CVE-2018-19486(bsc#1117257)を修正します

git 2.19.2:複数のサブコマンドと操作に関するさまざまなバグ修正

git 2.19.1:CVE-2018-17456:特別に細工された.gitmodulesファイルにより、リポジトリが

--recurse-submodules(bsc#1110949)

git 2.19.0:「git diff」はインデックスと作業ツリーを比較します。intent-to-addビットで追加されたパスの場合は、コマンドで追加されたパスの完全な内容が表示されますが、パス自体は新しいファイルとしてマークされませんでした。これらがデフォルトで新規として表示されるようになりました。

「git apply」に、「--intent-to-add」オプションが増えたため、パッチの作業ツリー専用アプリケーションが、「intent-to-add」ビットでマークされたインデックスに新しいパスを追加します。

「git grep」に、ヒットの行番号だけでなく列番号も提供する「--column」オプションが増えました。

「git branch -l」の「-l」オプションは「--create-reflog」の不便な省略表現ですが、新旧両方の多くのユーザーが、おそらく他の何か(「--list」など)であると期待しています。このステップは、「-l」が「--create-reflog」の省略表現として使用された場合に警告を出し、今後はその用途が変更されることを警告します。

.phpのuserdiffパターンが更新しました。

「git send-email」がデフォルトで送出するメッセージのcontent-transfer-encodingは8ビットのため、RFC 5322/2822の制限を守らない過剰に長い行が存在する場合に問題が発生する可能性があります。ペイロード内にそのような行が存在する場合にquoted-printableに自動的に切り替える新しいオプション「auto」が導入されており、これがデフォルトになっています。

「git checkout」と「git worktree add」は、同じ名前を共有する追跡ブランチがある複数のリモートからなるリポジトリ内のリモート追跡ブランチからローカルブランチを自動検証するときに、checkout.defaultRemoteを優先するようになりました。(後で8d7b558bae ab/checkout-default-remoteをmaintにマージします)。

「git grep」に、「--only-matching」オプションが増えました。

「git rebase --rebase-merges」モードで、octopusマージも処理されるようになりました。

「git fetch」トランザクション中の共通の祖先の発見中にコミットのたびに1つ前に戻るのではなく、より大きなパックファイル転送を受け入れる可能性のある、より少ない反復回数でより広い履歴の範囲をカバーする試みで、指数関数的/フィボナッチストライドでコミットをスキップするためのサーバー側のノブを追加します。(後で42cc7485a2 jt/fetch-negotiator-skippingをmaintにマージします)。

新しい構成変数のcore.usereplacerefsが追加されました。これは、主に、サーバーインストールで置換メカニズムをまとめて無視する場合に役立ちます。

「gnupg」を介してopenpgpを使用する代わりに「gpgsm」を介してx.509証明書とCMSを使用できるようにする、いくつかの構成変数(「openpgp」または「x509」に設定可能なgpg.formatと形式を処理するためにどのプログラムを使用するかを指定するためのgpg.<format>.program)を「git tag -s」などに教えます。 </format>

その他の複数の文字列がl10n用に用意されています。

「git p4 send」が、送信を続行する必要があるかどうかを独自の事前送信フックに問い合わせるようになりました。

不適切なオブジェクトがリポジトリに侵入するのを防ぐために「git push」の受信端で実行されるテストは、receive.fsck.*構成変数を介してカスタマイズできます。fetch.fsck.*構成変数を使用して「git fetch」側で同じことをするための同等の機能が用意されました。

「git pull --rebase=interactive」に、「interactive」の省略表現として「i」が増えました。

「git instaweb」が、RedHatベースのディストリビューションでより新しいApacheとより適切に動作するように調整されました。

「git range-diff」は、トピックの2回の繰り返しで個々のパッチを比較可能な「git tbdiff」の再実装です。

サイドバンドコードは、オプションで、受信端での着信行の先頭で選択されたキーワードをペイントするようになりました。

「git branch --list」は、「git tag --list」が「tag.sort」を参照するように、「branch.sort」構成変数からデフォルトのソート順を取得するようになりました。

「git worktree」コマンドに、冗長性を軽減するための「--quiet」オプションが増えました。

git 2.18.0:名前変更検出ロジックの改善

より新しいcURLでビルドした場合に、GIT_SSL_VERSIONで「tlsv1.3」をその値として指定できるようになりました。

「git mergetools」が、guiffyと対話するようになりました。

その他のさまざまなワークフローの改善と修正

パフォーマンスの向上とその他の開発者に見える修正

git 2.16.4への更新:セキュリティ修正リリース

git 2.17.1:サブモジュール'names'は信頼できない.gitmodulesファイルに由来しますが、盲目的にそれらを$GIT_DIR/modulesに追加してオンディスクリポジトリパスを作成します。これは、名前に「../」を付加することで、不適切な操作を実行できることを意味します。Gitにこのような悪意のある名前を無視させるサブモジュール名のルールを強制するようにしました(CVE-2018-11235、bsc#1095219)

NTFS上のパスをサニティチェックするコードを偽装して、メモリのランダム部分を読み取る可能性がありました(CVE-2018-11233、bsc#1095218)。

追跡対象コンテンツとしてこのような問題のある.gitmodulesファイルなどを作成しようとするリポジトリへのプッシュを拒否するサーバー側のサポートにより、ホスティングサイトは、悪意のあるコンテンツの拡散を防止して顧客を保護できます。

git 2.17.0:コマンドの「diff」ファミリーに、検出結果を名前付きオブジェクトに関する変更に制限するための「--find-object=<object-id>」オプションが増えました。 </object-id>

「git format-patch」が、diffstatに72-colsを指定するようになりました。これは、サブコマンドが電子メール用の出力に使用する他の行長制限と一貫性があります。

新しいオプションを使用すれば、「git daemon」からのログをリダイレクトできます。関連するユースケースの1つは、ログをinetdから実行する際に標準エラー(syslogではなく)に送信する場合です。

「git rebase」に、「--allow-empty-message」オプションが増えました。

「git am」に、既存の「--abort」オプションに加えて「--quit」オプションが増えました。ペアにすることで、「rebase」や「cherry-pick」などの他のいくつかのコマンドと同様に使用できます。

「git worktree add」が、「git clone」が初期チェックアウト時に実行するように、チェックアウト後のフックを実行するようになりました。

「git tag」に、「-m」と「-F」を介して指定されたメッセージをさらに編集できるようにする明示的な「--edit」オプションが増えました。

「git fetch --prune-tags」は、ローカルに保持されている古いタグを削除するための便利な省略表現として使用できます。

新しい「--show-current-patch」オプションにより、「git rebase」(と「git am」)が競合して停止した場合にdiffを適用する手段がエンドユーザーに提供されます。

「git add -p」は、ハンクが1つしかなくても「/」(一致するハンクを探す)を提供するために使用されていましたが、修正されました。また、単一キーのヘルプが、有効なキーに対してのみ表示されるようになりました(たとえば、ハンクが1つしかない場合は、「/」用のヘルプが表示されません)。

Git 1.7.9以降は、タグオブジェクトをマージする際に、「git merge」がデフォルトで--no-ffに設定されます(つまり、マージするサイドブランチが現在のコミットの子孫の場合でも、早送りではなくマージコミットを作成します)。
これは、ダウンストリームのコントリビューターによって署名されたタグをプルするインテグレーターにとっては適切なデフォルトでしたが、いつもアップストリームからのタグ付けされたリリースを使用してトピックブランチを「キャッチアップ」しているダウンストリームのコントリビューターが使用すると、不要なマージを引き起こしました。refs/tags/階層内の通常の場所に「存在しない」タグオブジェクトをマージする場合にのみ、「git merge」がデフォルトで--no-ffに設定されるように更新します。これにより、問題を緩和するための早送りが可能になります。

「git status」は、現在のブランチとそのアップストリームの関係を計算するために大量のサイクルを消費する可能性があります。これを「--no-ahead-behind」オプションで無効にできるようになりました。

「git diff」とフレンドが、Go言語のソースファイルのfuncnameパターンを使用するようになりました。

「git send-email」に、「--reply-to=<address>」オプションが増えました。 </address>

C#に使用されるfuncnameパターンで「async」キーワードが認識されるようになりました。

「git tag」がリストモードでのみページャー設定を優先するようになったのと同様に、「git config」は、値の設定に使用される場合(つまり、操作の目的が「表示」ではない場合)にページャー設定を無視するようになりました。

%docの代わりに%licenseを使用します(bsc#1082318)

git 2.16.3:作業ツリーでパスを移動(そのため、「削除済み」として表示される)してから、-Nオプションで追加(そのため、「追加済み」として表示される)した後の「git status」は、それを名前変更として検出しますが、古いパス名と新しいパス名を報告しませんでした。

「git commit --fixup」では、「-m<message>」オプションを同時に使用できませんでした。結果のコミットにより多くのテキストで注釈を付けられるようにします。
</message>

作業ツリーファイルを再帰的にリセットすると、サブモジュールの作業ツリーも一致するようにリセットされるようになりました。

オブジェクトIDを中心としたかなり古いAPI変更に合わせて調整するためにコメントアウトされたコードを修正します。

変更されたパスが多すぎる場合は、「git diff」が、警告メッセージを行の途中までしか表示しませんでした。

接続問題のデバッグによく使用されるhttpトレーシングコードが、その出力から潜在的な機密情報を編集し、より安全に共有できるようになりました。

エラーcodepathがロックされていないものをロック解除しようとするコーナーケースのクラッシュの修正。

分割インデックスモードで、コーナーケースのバグのいくつかが修正されました。

「git daemon」に対するさまざまな修正。

「git merge -s<strategy>」(contrib/内)の完了が、C以外のロケールでうまく機能しませんでした。 </strategy>

より新しいバージョンのSVNを使用したセグメンテーション違反の回避策。

最近導入されたfsck内の漏洩が解消されました。

Travis CI統合により、「before_script」フェーズではなく、「script」フェーズで実行可能ファイルがビルドされ、慣行に従うようになりました。その結果、CIで失敗をより適切に分類できます(「failed」はプロジェクトの障害で、「errored」はビルド環境の障害です)。

使用されなくなった余分なxinetdスニペットをドロップします(bsc#1084460)

最新のディストリビューション用のasciidoctorを使用してビルドします(bsc#1075764)

%{?systemd_requires}をデーモンサブパッケージに移動します

libsecret認証情報ヘルパー用のサブパッケージを作成します。

git 2.16.2:「git describe --all $annotated_tag^0」内の古い回帰が修正されました。

「git svn dcommit」は、svn+ssh:// username@付きURL(通常はプッシュに使用される)が、同じusername@なしSVNリポジトリを参照し、svn.pushmergeinfoオプションが設定されている場合に失敗するという事実を考慮していませんでした。

「git merge -Xours/-Xtheirs」が、シンボリックリンクに対する競合する更新を解決する際に、特定のバージョンを使用するようになりました。

「git clone $there $here」は、空のディレクトリである限りここにディレクトリが存在しても許可されますが、操作の失敗時にコマンドによって間違って削除されていました。

「git stash -- <pathspec>」は、pathspecと一致するディレクトリ内の追跡されていないファイルを正しく消去していませんでしたが、修正されました。
</pathspec>

「git add -p」が、サブモジュールに対するローカルの変更を無視するようになりました。これは、サブモジュールが通常の変更の部分的な追加に関与しないためです。

git 2.16.1:大文字と小文字が区別されないファイルシステムで、大文字と小文字の違いしかない2つのパスを追跡するプロジェクトを複製すると、「git clone」でセグメンテーション違反が発生しました

git 2.16.0(CVE-2017-15298、bsc#1063412):https://raw.github.com/git/git/master/Documentation/RelNotes/2.16.0.tx tを参照してください

git 2.15.1:「auto」列出力を修正します

移動した行のdiffを修正します

ドキュメントの更新

rootディレクトリ直下のリポジトリの使用を修正します

libsecretの使用を改善します

gitコマンドのさまざまなエラー状態を修正します

git-daemon用にsysv initからsystemdユニットファイルに書き換えます(bsc#1069803)

/var/adm/fillup-templatesへの参照を新しい%_fillupdirマクロで置き換えます(bsc#1069468)

p4をサブパッケージに分割します(bsc#1067502)

外部のlibsha1detectcollを使用してビルドします(bsc#1042644)

git 2.15.0:「すべて一致」に使用されるpathspec要素として空の文字列を使用すると、依然として警告が出ますが、Gitはより明示的な「.」を代わりに使用するようにユーザーに要請しています。2.16の削除が予定されています

Gitリポジトリ内に「いない」というセットアップシーケンスの場合に、Gitが盲目的に「.git」にフォールバックするのを回避するようになりました(別のコーナーケースは削除されています)

「branch --set-upstream」が1.8から廃止されました

その他のさまざまな改善と更新

git 2.14.3:git send-emailが、より多くのcc:形式を認識するようになりました

so gitk --bisectを修正します

-Fファイルを同様に処理するためにgit commit-treeが修正されました

「git cat-file --textconv」内のセグメンテーション違反を阻止します

HTMLの関数ヘッダー解析を修正します

ユーザーコマンドと内部関数に対するさまざまな軽微な修正

git 2.14.2:色の出力を修正します

http.{sslkey,sslCert}が、「~[username]/」プレフィックスを解釈するようになりました

「log -g」とフレンドを介したreflogsのウォーキングを修正します

出力の正確性に対するさまざまな修正

「git push --recurse-submodules $there HEAD:$target」が、サブモジュールにも伝播されるようになりました

'git clone --recurse-submodules --quiet' c$howが、quietオプションをサブモジュールに伝播します。

「git svn --localtime」の正確性の修正

「git grep -L」と「git grep --quiet -L」が同じ終了コードを報告するようになりました

ラインエンディングの変換時の「git apply」を修正します

多くのPerlスクリプトがbackticksではなくsafe_pipe_capture()を使用しなかったため、エンドユーザーの入力に対して脆弱になっています。 CVE-2017-14867 bsc#1061041

「git cvsserver」が、デフォルトで「git daemon」によって呼び出されなくなりました

git 2.14.1(bsc#1052481):CVE-2017-1000117 のセキュリティ修正:悪意のあるサードパーティが細工された'ssh://...' URLを無防備な被害者に送り付け、そのURLni被害者のマシンにある任意のプログラムが実行される可能性があります。このようなURLは悪意のあるプロジェクトの.gitmodulesファイルに配置され、無防備な被害者は'git clone
--recurse-submodules'を実行するように誘導され、脆弱性をトリガーする可能性があります。

「ssh://...」URLが、ダッシュ「-」で始まるホスト名の「ssh」コマンドラインになる可能性があります。そのため、「ssh」コマンドがそれをオプションとして(誤って)処理する可能性があります。現在、これは、このようなホスト名を禁止することで防止されています(実際の使用には影響しないはずです)。

同様に、GIT_PROXY_COMMANDが構成されている場合は、「ssh:// ...」URLから解析されたホストとポートでコマンドが実行されます。不適切に記述されたGIT_PROXY_COMMANDが、ダッシュ「-」で始まる文字列をオプションとして処理するように騙される可能性があります。現在、これは、このようなホスト名とポート番号を禁止することで防止されています(実際の使用には影響しないはずです)。

同じように、ダッシュ「-」で始まるリポジトリ名も現在は禁止されています。

git 2.14.0:「すべて一致」に使用されるpathspec要素として空の文字列を使用することは廃止されました。「.」を使用してください。

セットアップシーケンスがGitリポジトリ上でない操作を示している場合に、盲目的に「.git」にフォールバックすることを回避します

「indent heuristics」がデフォルトになりました。

pcre2を使用してビルドします

さまざまなバグ修正、改善、および更新

git 2.13.4:文字幅テーブルを更新します。

大文字を含んでいたエイリアスを修正します

進捗メーターの修正

git gcの同時実行の修正

git 2.13.3:さまざまな内部のバグの修正

「git rebase -i」への回帰を修正します

pack-bitmapコード内のアラインされていない32ビットアクセスを修正します

無効な「git apply」入力に対するエラーチェックを強化します

分割インデックスコードが、core.sharedrepository設定を正しく優先していませんでした

color.branch.localの「git branch --list」処理を修正します

git 2.13.2:プラットフォーム用の「衝突検出」SHA-1の更新の修正

「git checkout --recurse-submodules」は、サブモジュールを持つサブモジュールでまったく機能しませんでした。

「run-command」API実装が、スレッド化された環境でのデッドロックに対してより堅牢になりました。

「git clean -d」が、「-x」を使用して無視されたファイルだけをクリーンアップするようになりました

「git status --ignored」は、「-uall」を使用せずに無視されたファイルと追跡されなかったファイルを一覧表示しませんでした

ローカル履歴がアップストリームに早送りされた場合に、「git pull --rebase --autostash」が自動一時退避しませんでした。

「gitscribe --contains」は、軽量のタグに注釈付きのタグと同じだけの重みを与えます

サブディレクトリ</pathspec>からの「git stash push <pathspec>」を修正します

git 2.13.1:構成ファイルでの「log.decorate=false」の設定がv2.13で有効になりませんでしたが、修正されました。

ドキュメントとコマンドヘルプ出力の修正

ガベージコレクションの修正

メモリリークが修正されました

receive-packが、プッシュ証明書に、プッシュに使用されるプッシュオプションの同じセットが記録されることを確認するようになりました

git stashのシェル完了の修正

空の文字列を含む「git clone --config var=val」を修正します

内部の効率の改善

ビッグエンディアンプラットフォームとアラインされていないフェッチをサポートしないプラットフォーム用のsha1衝突検出コードを更新します

ドキュメントのパッケージングを修正します

git 2.13.0:「すべてが一致」用のpathspec要素としての空の文字列は、まだ警告の段階ですが、いずれ削除されます。

廃止された引数順序「git merge <msg> HEAD <commit>...」が削除されました </commit></msg>

credential-cacheデーモンとの通信に使用されるソケットのデフォルトの場所「~/.git-credential-cache/socket」が、「~/.cache/git/credential/socket」に移動されました。

セットアップシーケンスで別段の指示がある場合は、盲目的な「.git」へのフォールバックが回避されるようになりました

さまざまなワークフロー機能、改善、およびバグ修正

実際の衝突攻撃に対抗してSHA1の強化された実装を追加します(CVE-2005-4900、bsc#1042640)

CVE-2017-8386:ユーザーをgitコマンドに制限するためにgit-shellをログインシェルとして実行しているサーバーで、リモートユーザーがgitサービスプログラムにインタラクティブなページャーを生成させ、シェルの制限を回避できる可能性があります。(bsc#1038395)

pcre2での変更:ライブラリ、開発、およびツールパッケージが含まれます。

gitでは、これまでlibpcre2-8のみが使用されていましたが、これによりpcre2のさらなるアプリケーション使用が可能になります。

注意:Tenable Network Securityは、前述の記述ブロックをSUSEセキュリティアドバイザリから直接抽出しています。Tenableでは、そこに新しい問題を追加することはせずに、できる限り自動的に整理と書式設定をするようにしています。

ソリューション

このSUSEセキュリティ更新プログラムをインストールするには、YaSTのonline_updateや「zypper patch」など、SUSEが推奨するインストール方法を使用してください。

別の方法として、製品にリストされているコマンドを実行することができます:

SUSE OpenStack Cloud Crowbar 8:zypper in -t patch SUSE-OpenStack-Cloud-Crowbar-8-2020-992=1

SUSE OpenStack Cloud 8:zypper in -t patch SUSE-OpenStack-Cloud-8-2020-992=1

SUSE OpenStack Cloud 7:zypper in -t patch SUSE-OpenStack-Cloud-7-2020-992=1

SUSE Linux Enterprise Software Development Kit 12-SP5:zypper in -t patch SUSE-SLE-SDK-12-SP5-2020-992=1

SUSE Linux Enterpriseソフトウェア開発キット12-SP4:zypper in -t patch SUSE-SLE-SDK-12-SP4-2020-992=1

SUSE Linux Enterprise Server for SAP 12-SP3:zypper in -t patch SUSE-SLE-SAP-12-SP3-2020-992=1

SUSE Linux Enterprise Server for SAP 12-SP2:zypper in -t patch SUSE-SLE-SAP-12-SP2-2020-992=1

SUSE Linux Enterprise Server for SAP 12-SP1:zypper in -t patch SUSE-SLE-SAP-12-SP1-2020-992=1

SUSE Linux Enterprise Server 12-SP5:zypper in -t patch SUSE-SLE-SERVER-12-SP5-2020-992=1

SUSE Linux Enterprise Server 12-SP4:zypper in -t patch SUSE-SLE-SERVER-12-SP4-2020-992=1

SUSE Linux Enterprise Server 12-SP3-LTSS:zypper in -t patch SUSE-SLE-SERVER-12-SP3-2020-992=1

SUSE Linux Enterprise Server 12-SP3-BCL:zypper in -t patch SUSE-SLE-SERVER-12-SP3-BCL-2020-992=1

SUSE Linux Enterprise Server 12-SP2-LTSS:zypper in -t patch SUSE-SLE-SERVER-12-SP2-2020-992=1

SUSE Linux Enterprise Server 12-SP2-BCL:zypper in -t patch SUSE-SLE-SERVER-12-SP2-BCL-2020-992=1

SUSE Linux Enterprise Server 12-SP1-LTSS:zypper in -t patch SUSE-SLE-SERVER-12-SP1-2020-992=1

SUSE Enterprise Storage 5:zypper in -t patch SUSE-Storage-5-2020-992=1

HPE Helion Openstack 8:zypper in -t patch HPE-Helion-OpenStack-8-2020-992=1

参考資料

https://bugzilla.suse.com/show_bug.cgi?id=1167890

https://bugzilla.suse.com/show_bug.cgi?id=1168930

https://lists.opensuse.org/opensuse-factory/2019-01/msg00490.html

http://www.nessus.org/u?9a796f1e

https://www.suse.com/security/cve/CVE-2020-5260/

http://www.nessus.org/u?d199ff91

プラグインの詳細

深刻度: Critical

ID: 135580

ファイル名: suse_SU-2020-0992-1.nasl

バージョン: 1.4

タイプ: local

エージェント: unix

公開日: 2020/4/15

更新日: 2022/5/13

サポートされているセンサー: Frictionless Assessment Agent, Frictionless Assessment AWS, Frictionless Assessment Azure, Nessus Agent, Agentless Assessment, Nessus

リスク情報

VPR

リスクファクター: High

スコア: 7.4

CVSS v2

リスクファクター: High

基本値: 9.3

現状値: 7.7

ベクトル: CVSS2#AV:N/AC:M/Au:N/C:C/I:C/A:C

CVSS スコアのソース: CVE-2019-19604

CVSS v3

リスクファクター: Critical

基本値: 9.8

現状値: 9.1

ベクトル: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

現状ベクトル: CVSS:3.0/E:F/RL:O/RC:C

CVSS スコアのソース: CVE-2019-1353

脆弱性情報

CPE: p-cpe:/a:novell:suse_linux:git-core, p-cpe:/a:novell:suse_linux:git-core-debuginfo, p-cpe:/a:novell:suse_linux:git-debugsource, p-cpe:/a:novell:suse_linux:libpcre2-16, p-cpe:/a:novell:suse_linux:libpcre2-16-0-debuginfo, p-cpe:/a:novell:suse_linux:libpcre2-32, p-cpe:/a:novell:suse_linux:libpcre2-32-0-debuginfo, p-cpe:/a:novell:suse_linux:libpcre2-8, p-cpe:/a:novell:suse_linux:libpcre2-8-0-debuginfo, p-cpe:/a:novell:suse_linux:libpcre2-posix2, p-cpe:/a:novell:suse_linux:libpcre2-posix2-debuginfo, cpe:/o:novell:suse_linux:12

必要な KB アイテム: Host/local_checks_enabled, Host/cpu, Host/SuSE/release, Host/SuSE/rpm-list

エクスプロイトが利用可能: true

エクスプロイトの容易さ: Exploits are available

パッチ公開日: 2020/4/14

脆弱性公開日: 2016/10/14

エクスプロイト可能

Metasploit (Malicious Git HTTP Server For CVE-2018-17456)

参照情報

CVE: CVE-2005-4900, CVE-2017-1000117, CVE-2017-14867, CVE-2017-15298, CVE-2017-8386, CVE-2018-11233, CVE-2018-11235, CVE-2018-17456, CVE-2018-19486, CVE-2019-1348, CVE-2019-1349, CVE-2019-1350, CVE-2019-1351, CVE-2019-1352, CVE-2019-1353, CVE-2019-1354, CVE-2019-1387, CVE-2019-19604, CVE-2020-5260