KB5022083 WPF ベースのアプリケーションが XPS ドキュメントをレンダリングする方法の変更

注

リリース日:
2022 年 12 月 13 日

注

  • この記事は 2023 年 5 月 19 日に改訂され、代替回避策のレジストリ キーが更新されました。
  • この記事は 2023 年 2 月 17 日に改訂され、解決策が更新されました。
  • この記事は 2023 年 1 月 31 日に改訂され、解決策が追加されました。
  • この記事は 2023 年 1 月 9 日に改訂され、「現象」セクションが拡充され、「よくある質問」セクションが追加されました。
  • この記事は 2022 年 12 月 15 日に改訂され、回避策が追加されました。

概要

この記事では、2022 年 12 月 13 日または 2023 年 2 月 14 日のセキュリティ更新プログラム、または 2023 年 1 月 19 日の .NET Framework および .NET の更新プログラムをインストールした後に、WPF ベースのアプリケーションが XPS ドキュメントをレンダリングする方法で問題が発生する可能性がある問題を軽減するためのヘルプを提供します。

現象

テーブル構造、ストーリーボード、ハイパーリンクなどの構造要素またはセマンティック要素を利用する XPS ドキュメントは、WPF ベースのリーダーでは正しく表示されない場合があります。 さらに、一部のインライン イメージが正しく表示されない場合や、XPS ドキュメントが WPF ベースのリーダーに読み込まれる場合、Null 参照例外が発生する場合があります。

回避策

Microsoft は、この問題の互換性回避策を特定し、これを解決する PowerShell スクリプトを作成しました。

互換性の回避策をインストールするには、次の手順に従います。

  1. PowerShell スクリプトをダウンロードする
  2. 管理者として PowerShell プロンプトを開きます
  3. プロンプト内で、スクリプトがダウンロードされたディレクトリに移動します
  4. プロンプト内で次のコマンドを実行します: .\kb5022083-compat.ps1 -Install

コマンドが成功すると、コンソール ウィンドウに「インストールが完了しました」と表示されます。 コマンドが失敗した場合は、失敗の理由が表示されます。 互換性の回避策を削除する手順は上記と同じですが、上記の手順 (4) を .\kb5022083-compat.ps1 -Uninstall に置き換えます。

互換性の回避策がインストールされると、XPS ドキュメントを表示する WPF ベースのアプリケーションは、2022 年 12 月 13 日のセキュリティ更新プログラムの前と同様に引き続き動作するはずです。

代替の回避策

最初の回避策で問題が解決しない場合は、レジストリ エントリを使用して強化されたセキュリティ動作を無効にできます。 この方法は、システムで扱う全ての XPS ドキュメントが信頼されたもの、例えば、システムに外部からアップロードされたものではなく、自社のシステム内で生成され誰にも変更されていないことがわかっている場合のみ実行してください。 インターネットや外部からの電子メール、その他、信頼できない提供元からの XPS ドキュメントを受け付ける場合は、この機能を無効化しないでください。

セキュリティ強化を無効にするには、管理者特権でのコマンド プロンプトから次のコマンドを実行します。

  • reg add "HKLM\SOFTWARE\Microsoft\.NETFramework\Windows Presentation Foundation\XPSAllowedTypes" /v "DisableDec2022Patch" /t REG_SZ /d "*" /reg:64
  • reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\Windows Presentation Foundation\XPSAllowedTypes" /v "DisableDec2022Patch" /t REG_SZ /d "*" /reg:64

または、グループ ポリシー を使用して、キー名が HKLM\SOFTWARE\Microsoft\.NETFramework\Windows Presentation Foundation\XPSAllowedTypes、値の名前が DisableDec2022Patch、値が の REG_SZ エントリを作成することもできます。*

これらの回避策のいずれかを削除してセキュリティ強化された動作を返すには、管理者特権でのコマンド プロンプトから次のコマンドを実行します。

  • reg delete "HKLM\SOFTWARE\Microsoft\.NETFramework\Windows Presentation Foundation\XPSAllowedTypes" /reg:64 /f
  • reg delete "HKLM\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\Windows Presentation Foundation\XPSAllowedTypes" /reg:64 /f

この設定は強化された機能をシステム全体で無効化するので、システムに入力されるすべての XPS を完全に信頼できる場合にのみ使用してください。

Resolution

この問題は、2023 年 1 月 31 日にリリースされた Windows 10 Version 1607 および Windows Server 2016 バージョンとそれ以降のオペレーティング システム用帯域外更新プログラムと、2023 年 2 月 17 日にリリースされた以前の Windows および Windows Server バージョン用帯域外更新プログラムで解決されました。 これらの帯域外更新プログラムのスタンドアロン パッケージを入手するには、 Microsoft Update カタログで KB 番号を検索してください。 これらの更新プログラムは、Windows Server Update Services (WSUS) と Microsoft Endpoint Configuration Manager に手動でインポートできます。 WSUS の手順については、「 WSUS とカタログ サイト」を参照してください。 構成マネージャーの手順については、「 Microsoft Update カタログから更新プログラムをインポートする」を参照してください。

この問題の回避策または軽減策を使用した場合、それらは不要になったため、削除することをお勧めします。 回避策を削除するには、手順に適用された回避策または代替の回避策を確認します。

Product Version 更新 サポート技術情報
Windows 11、 バージョン 22H2
.NET Framework 4.8.1 カタログ 5023327
Windows 11 バージョン 21H2 カタログ 5023367
.NET Framework 4.8 カタログ 5023323
.NET Framework 4.8.1 カタログ 5023320
Windows Server 2022 カタログ 5023368
.NET Framework 4.8 カタログ 5023324
.NET Framework 4.8.1 カタログ 5023321
Azure Stack HCI (バージョン 22H2)
.NET Framework 4.8 カタログ 5023324
Azure Stack HCI、バージョン 21H2
.NET Framework 4.8 カタログ 5023324
Windows 10 バージョン 22H2 カタログ 5023366
.NET Framework 4.8 カタログ 5023322
.NET Framework 4.8.1 カタログ 5023319
Windows 10 バージョン 21H2 カタログ 5023365
.NET Framework 4.8 カタログ 5023322
.NET Framework 4.8.1 カタログ 5023319
Windows 10 バージョン 20H2 カタログ 5023364
.NET Framework 4.8 カタログ 5023322
.NET Framework 4.8.1 カタログ 5023319
Windows 10 1809 (October 2018 Update) および Windows Server 2019 カタログ 5023363
.NET Framework 4.7.2 カタログ 5023333
.NET Framework 4.8 カタログ 5023326
Windows 10 1607 (Anniversary Update) および Windows Server 2016 カタログ 5023416
.NET Framework 4.7.2 カタログ 5023332
.NET Framework 4.8 カタログ 5023325
Windows Embedded 8.1 および Windows Server 2012 R2
.NET Framework 4.6.2、4.7、4.7.1、4.7.2 カタログ 5023819
.NET Framework 4.8 カタログ 5023822
Windows Embedded 8 および Windows Server 2012
.NET Framework 4.6.2、4.7、4.7.1、4.7.2 カタログ 5023818
.NET Framework 4.8 カタログ 5023821
Windows Embedded 7 Standard および Windows Server 2008 R2 SP1
.NET Framework 4.6.2、4.7、4.7.1、4.7.2 カタログ 5023820
.NET Framework 4.8 カタログ 5023823
Windows Server 2008 SP2
.NET Framework 4.6.2 カタログ 5023820

影響を受ける更新プログラム

次の .NET バージョンが影響を受けます。

  • .NET Framework 2.0、3.0、3.5、3.5.1 (2022 年 12 月 13 日のセキュリティ更新プログラムがインストールされている場合)。
  • .NET Framework 4.6.2、4.7、4.7.1、4.7.2 (2022 年 12 月 13 日のセキュリティ更新プログラムがインストールされている場合)。
  • .NET Framework 4.8 (2022 年 12 月 13 日のセキュリティ更新プログラムがインストールされている場合)。
  • .NET Framework 4.8.1 (2022 年 12 月 13 日のセキュリティ更新プログラムがインストールされている場合)。
  • .NET Core 3.1 (Windows デスクトップ ランタイム バージョン 3.1.32 の場合)。
  • .NET 6 (Windows デスクトップ ランタイム バージョン 6.0.12 以降 の場合)。
  • .NET 7 (Windows デスクトップ ランタイム バージョン 7.0.1 以降 の場合)。

Windows オペレーティング システム内で提供される Windows XPS ビューアー アプリケーションは、この問題の影響を受けません。

よく寄せられる質問 (FAQ)

この回帰はいつ導入されましたか?

このリグレッションは、2022 年 12 月 13 日の .NET および .NET Framework の累積的なセキュリティ更新プログラムによって発生します。

管理者がこの記事で提供されている PowerShell スクリプトをインストールした場合、コンピューターは脆弱なままになりますか。

いいえ。 PowerShell スクリプトは互換性のみに対処します。 2022 年 12 月 13 日のセキュリティ更新プログラムを無効にしたり、その有効性を低下させたりすることはありません。

管理者がレジストリ ベースの代替回避策を使用する場合、コンピューターは脆弱なままになりますか。

はい。 上記の代替回避策は、2022 年 12 月 13 日のセキュリティ修正プログラムの WPF 部分を無効にします。 管理者が代替回避策を使用する場合は、コンピューター上で信頼されていないソースからの XPS ドキュメントを開かないようにユーザーに指示する必要があります。

このガイダンスは、XPS ドキュメントを読み込む WPF ベースのアプリケーションにのみ適用されます。 ユーザーは引き続き Windows の組み込みの XPS ビューアー アプリケーションを使用して、代替のレジストリ ベースの回避策を利用しているコンピューターでも、信頼されていない XPS ドキュメントを安全に表示できます。

互換性の問題に対処するために Microsoft は何を行っていますか?

この問題は、2023 年 1 月 31 日にリリースされた帯域外更新プログラムで、一部のバージョンの .NET Framework で解決されました。 Microsoft は、対処されていない .NET Framework のバージョンについて、根本的なセキュリティ問題を解決しつつ互換性を復元する追加の更新プログラムを積極的に調査しています。

保護とセキュリティに関する情報