1月、.NET FrameworkおよびCoreのホールを修正

ロシアの年末年始の1月9日に、MicrosoftはCVE-2018-0786およびCVE-2018-0764を修正する更新プログラムをリリースしました 。 彼らはそれを修理して、いくつかの場所でそれを壊した。 この短い投稿では、それが何であり、今何をすべきかをもう一度思い出します。







このハブラポストを説明するために、ふるいを描いてみました。 ご覧のとおり、私は成功しませんでした。 残念ながら、コードにふるいを作成することは、グラフィックタブレットを初めて取り上げるよりもはるかに簡単です。









私も危険にさらされていますか?



.NET Frameworkを使用する場合は、バージョン4.7.1がインストールされていること、およびWindowsが2018年1月のセキュリティと品質ロールアップKB4055002 )をインストールしていることを確認する必要があります。 または、少なくともセキュリティのみの更新KB4054183 )。

そうでない場合は、問題があります。







リンクの手順を使用して、.NET Framework自体のバージョンを確認できます。 私の手で毎回チェックしないように、Power Shellのスクリプトがあります







.NET Coreを使用する場合は、ファイルシステムに移動して、インストールされているランタイムのバージョンを確認する必要があります。 ディレクトリ1.0.9



または2.0.5



がない場合、問題があります!







見る場所:







C:\ Program Files \ dotnet \ shared \ Microsoft.NETCore.App \
macOS /usr/local/share/dotnet/shared/Microsoft.NETCore.App/
GNU / Linux /usr/share/dotnet/shared/Microsoft.NETCore.App/


.NET Coreの脆弱なバージョンの正確なリスト:







ランタイムバージョン バージョンで修正
1.0.0、1.0.1、1.0.2、1.0.3、1.0.4、1.0.5、1.0.7、1.0.8 1.0.9
1.1.0、1.1.1、1.1.2、1.1.4、1.1.5 1.1.6
2.0.0、2.0.3、2.0.4 2.0.5


どうする



開発者は、.NET Frameworkを4.7.1にアップグレードし、Windows を最新の更新で更新する必要があります 。 Windowsのすべてのバージョンでは、この更新はうまく機能しません(記事を最後まで読んでください)。







.NET Core SDKをバージョン2.1.4



または1.1.7



更新する必要があり2.1.4



1.0.9



は、.NET Coreをバージョン1.0.9



1.1.6



または2.0.5



にアップグレードする必要があります。







自己完結型のアプリケーションを再構築する必要があります。他の場合は、ランタイムとSDKを更新するだけで十分です。







CVE-2018-0764:XMLドキュメントの解析時のサービス拒否



公式リンク





どうした



.NET FrameworkとCoreはXMLの解析が苦手であり、それを利用して、ハッカーはアプリケーションに対してDDOS攻撃を仕掛けることができます。







アップデートでは、彼らはそれを修正しました。 エクスプロイトは公開されていません。










CVE-2018-0786:X509証明書検証のセキュリティ機能のバイパス



公式リンク





どうした



.NET FrameworkおよびCoreのパブリックバージョンには、ハッカーが特定の使用方法に対して無効とマークされた証明書をスリップし、それでもこの目的で使用できる脆弱性があります。 これにより、拡張キー使用法を無視できます。







アップデートでは、彼らはそれを修正しました。 エクスプロイトは公開されていません。







パッケージを更新する必要がありますか?



Microsoft.NETCore.UniversalWindowsPlatform



パッケージが影響を受けます。

パッケージバージョンは、対応する.NET Nativeのバージョンとともにリストされます。







NuGet / .NET Native バージョンで修正
5.2。* / 1.4。* 5.2.4
5.3。* / 1.6。* 5.3.5
5.4。* / 1.7。* 5.4.2
6.0。* / 2.0。* 6.0.6


.NET Coreを使用している場合、アプリケーションを修正する方法は?



このバグにとって、アプリケーションのタイプは重要です。









通常のアプリケーションは、実行しているSDKまたはランタイムの目的のバージョンをインストールするだけで修復できます。 こちらからダウンロードできます。







自己完結型のアプリケーションは、新たに更新されたSDKで再構築し、再展開する必要があります。







次に、ネイティブアプリケーションについて説明します。 更新されたSDKのネイティブコンパイラで再度処理し、結果をWindowsストアに転送する必要があります。







MSは、UWPアプリケーションをMicrosoft.NETCore.UniversalWindowsPlatform



NuGetパッケージの最新のマイナーバージョンに更新することをお勧めします。これにより、アプリケーションを再構築し、アプリケーションが崩壊していないことを理解できます。 もちろん、すぐに最新のメジャーバージョンにアップグレードすることもできますが、これは必須ではありません。バグが発生したすべてのメジャーバージョンに対してアップデートが発行されます。







NuGetパッケージを更新したかどうかに関係なく、1月9日以降にアップロードされたすべてのアプリケーションは、アップロード中に自動的に直接修復されます。







ストアでアプリケーションを更新しない場合でも、今後数週間のうちに自動的に処理され、Windows Updateを介して送信されます。 自動更新をオフにしていないユーザーは、誰も手動で介入する必要なく、更新されたバージョンを受け取ります。 ただし、サイドロードアプリケーションの場合は、NuGetパッケージを自分で更新し、再構築してユーザーに配信する必要があります。







.NET Frameworkを使用すると、更新によりWindows 7およびWindows Serverが破損する



この未解決のバグによると、パッチは治癒するだけでなく、障害をも修復します。 この問題は、Windows 7 Service Pack 1およびWindows Server 2008 R2 Service Pack 1を使用している場合にのみ発生します。







代替フォント(または現在のフォントに含まれていない文字)を要求するWPFアプリケーションが次のエラーで落ちるため、更新プログラムまたは.NET Framework 4.7.1をインストールするだけで十分です。







 System.TypeInitializationException “FileFormatException: No FontFamily element found in FontFamilyCollection that matches current OS or greater: Win7SP1”. Inner exception originates from: CompositeFontParser
      
      





問題は、インストーラーが更新インストーラー(.NET Framework 2018年1月のロールアップ-KB4055002)と既にインストールされている.NET Framework 4.7.1との間の相互作用を適切に処理しないことです。 ロールアップインストーラーは、バージョン4.7.1に付属するGlobalUserInterface.CompositeFontファイルを誤って上書きします。これが、WPFアプリケーションがクラッシュし始めた理由です。







3つの解決策があります。







方法1:1月の更新プログラムをアンインストールする



「January .NET Framework Security and Quality Rollup( KB4055002 )」を削除する必要があります。







代わりに、「January .NET Framework Security-Only Update( KB4054183 )」をインストールします。







これを行うには、次の手順を実行します。







  1. コントロールパネル→Windows Update→更新履歴を表示
  2. 「更新履歴の確認」リストで「Microsoft .NET Framework 4.6、4.6.1、4.6.2、4.7、4.7.1(KB4055002)のセキュリティ更新プログラム」を見つけて選択します。 アンインストールをクリックします。
  3. 本当に削除するかどうか尋ねられたら-同意します。
  4. 指示があった場合は、必ずコンピューターを再起動してください。
  5. 必要なバージョンのセキュリティパッチをダウンロードしてインストールします。

  6. 求められたすべてを実行し、最後にコンピューターを再起動してください。


方法2:.NET Framework 4.7.1を削除し、.NET Framework 4.7をインストールする



  1. コントロールパネル→プログラムと機能
  2. 「プログラムのアンインストールまたは変更」リストで、「Microsoft .NET Framework 4.7.1」を強調表示し、「アンインストール/変更」をクリックします。

  3. [このコンピューターから.NET Framework 4.7.1を削除する]を選択し、[次へ]をクリックします。

  4. [続行]をクリックして、削除を待ちます。
  5. アンインストールが完了したら、[完了]をクリックします。

  6. 指示があった場合は、必ずコンピューターを再起動してください。
  7. .NET Framework 4.7をインストールします


方法3: GlobalUserInterface.CompositeFont



を正しいファイルに置き換えます



  1. GlobalUserInterface.CompositeFontをダウンロードします (Windows 7の場合、標準インストールパスは%USERPROFILE%\Downloads



  2. cmd



    開き、 %windir%\Microsoft.NET\Framework\v4.0.30319\WPF\Fonts



    して実行します。

    xcopy /y %USERPROFILE%\Downloads\GlobalUserInterface.CompositeFont





    (または単にGlobalUserInterface.Compositeファイルをこの場所に貼り付けます)
  3. cmd



    開き、 %windir%\Microsoft.NET\Framework64\v4.0.30319\WPF\Fonts



    して実行します:

    xcopy /y %USERPROFILE%\Downloads\GlobalUserInterface.CompositeFont





    (または、エクスプローラーでコピー/貼り付けファイルを再度使用します)。
  4. WPFアプリケーションを再起動します。
  5. 他のすべてが失敗した場合は、コンピューターを再起動し、WPFアプリケーションを再起動します。


まとめ



非常に優れた高品質のプロジェクトであってもエラーが含まれています。 トラブルに巻き込まれないようにするには、DotNextなどの会議で時間通りに更新し、 公式ニュース読み 、現在の傾向を研究する必要があります。 dr死を救うことはdr死者の仕事です!








All Articles