KB5022083 Zmiana sposobu renderowania dokumentów XPS przez aplikacje oparte na WPF

Uwaga

Data wydania:
13 grudnia 2022 r.

Uwaga

  • Ten artykuł został poprawiony 19 maja 2023 r. w celu zaktualizowania alternatywnych kluczy rejestru obejścia.
  • Ten artykuł został poprawiony 17 lutego 2023 r. w celu zaktualizowania rozwiązania.
  • Ten artykuł został poprawiony 31 stycznia 2023 r. w celu dodania rozwiązania.
  • Ten artykuł został poprawiony 9 stycznia 2023 r. w celu rozwinięcia objawu i dodania sekcji często zadawanych pytań.
  • Ten artykuł został poprawiony 15 grudnia 2022 r. w celu dodania dodatkowego obejścia.

Podsumowanie

Ten artykuł zawiera pomoc w ograniczeniu problemu, gdy po zainstalowaniu aktualizacji zabezpieczeń z 13 grudnia 2022 r. lub 14 lutego 2023 r. lub aktualizacji z 19 stycznia 2023 r. dla platformy .NET Framework i .NET użytkownicy mogą napotkać problemy ze sposobem renderowania dokumentów XPS przez aplikacje oparte na WPF.

Objaw

Dokumenty XPS, które wykorzystują elementy strukturalne lub semantyczne, takie jak struktura tabeli, scenorysy lub hiperlinki, mogą nie być poprawnie wyświetlane w czytnikach opartych na WPF. Ponadto niektóre obrazy w tekście mogą nie być wyświetlane poprawnie lub mogą wystąpić wyjątki odwołania null, gdy dokumenty XPS są ładowane do czytników opartych na WPF.

Obejście

Firma Microsoft opracowała obejście tego problemu w celu zapewnienia zgodności i utworzyła skrypt programu PowerShell w celu rozwiązania tego problemu.

Aby zainstalować obejście problemu ze zgodnością, wykonaj poniższe czynności.

  1. Pobieranie skryptu programu PowerShell
  2. Otwieranie wiersza polecenia programu PowerShell jako administrator
  3. W ramach monitu przejdź do katalogu, w którym skrypt został pobrany
  4. Uruchom polecenie w wierszu polecenia: .\kb5022083-compat.ps1 -install

Jeśli polecenie zostanie wykonane, w oknie konsoli zostanie wydrukowany tekst "Instalacja ukończona". Jeśli polecenie nie powiedzie się, zostanie wyświetlona przyczyna niepowodzenia. Aby usunąć obejście problemu ze zgodnością, wykonaj te same kroki co powyżej, ale zastąp krok (4) powyżej: .\kb5022083-compat.ps1 -Uninstall

Po zainstalowaniu obejścia zgodności aplikacje oparte na WPF, które wyświetlają dokumenty XPS, powinny nadal działać tak, jak przed aktualizacjami zabezpieczeń z 13 grudnia 2022 r.

Alternatywne obejście

Jeśli pierwsze obejście nie rozwiąże problemu, można użyć wpisu rejestru, aby wyłączyć zachowanie zwiększonych zabezpieczeń. Należy to zrobić tylko wtedy, gdy wiesz na pewno, że wszystkie dokumenty XPS są godne zaufania, na przykład są generowane przez system, a nie przesyłane do systemu i nie mogą być przez nikogo zmieniane. Nie wyłączaj funkcji, jeśli akceptujesz dokumenty XPS z Internetu, wiadomości e-mail od podmiotów zewnętrznych lub z innych niewiarygodnych źródeł.

Aby wyłączyć zachowanie zwiększonych zabezpieczeń, uruchom następujące polecenie z wiersza polecenia z podwyższonym poziomem uprawnień:

  • 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

Ewentualnie możesz użyć zasady grupy, aby utworzyć wpis REG_SZ z nazwą HKLM\SOFTWARE\Microsoft\.NETFramework\Windows Presentation Foundation\XPSAllowedTypesklucza , nazwą DisableDec2022Patchwartości i wartością*

Aby usunąć jedno z tych obejść i przywrócić zachowanie zwiększonych zabezpieczeń, uruchom następujące polecenia z wiersza polecenia z podwyższonym poziomem uprawnień:

  • 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

Spowoduje to wyłączenie rozszerzonej funkcjonalności na całej maszynie i powinno być używane tylko wtedy, gdy wszystkie dane wejściowe XPS w systemie mogą być w pełni zaufane.

Rozwiązanie

Ten problem został rozwiązany w aktualizacjach poza pasmem wydanych 31 stycznia 2023 r. dla systemu Windows 10 w wersji 1607 i wersji Windows Server 2016 oraz nowszych systemów operacyjnych i aktualizacji poza pasmem wydanych 17 lutego 2023 r. dla wcześniejszych wersji systemu Windows i Windows Server. Aby uzyskać pakiet autonomiczny dla tych aktualizacji poza pasmem, wyszukaj numer aktualizacji KB w wykazie usługi Microsoft Update. Te aktualizacje można zaimportować ręcznie do usług Windows Server Update Services (WSUS) i programu Microsoft Endpoint Configuration Manager. Aby uzyskać instrukcje dotyczące usług WSUS, zobacz WSUS i witrynę wykazu. Aby uzyskać instrukcje dotyczące menedżera konfiguracji, zobacz Importowanie aktualizacji z wykazu usługi Microsoft Update.

Jeśli zastosowano jakiekolwiek obejście lub środki zaradcze dla tego problemu, nie są one już potrzebne i zalecamy ich usunięcie. Aby usunąć obejście, zapoznaj się z obejściem lub alternatywnym obejściem, które zostało zastosowane do instrukcji.

Wersja produktu Aktualizuj
System Windows 11 w wersji 22H2
.NET Framework 4.8.1 Katalog produktów 5023327
System Windows 11 w wersji 21H2 Katalog produktów 5023367
.NET Framework 4.8 Katalog produktów 5023323
.NET Framework 4.8.1 Katalog produktów 5023320
Windows Server 2022 Katalog produktów 5023368
.NET Framework 4.8 Katalog produktów 5023324
.NET Framework 4.8.1 Katalog produktów 5023321
Azure Stack HCI, wersja 22H2
.NET Framework 4.8 Katalog produktów 5023324
Azure Stack HCI, wersja 21H2
.NET Framework 4.8 Katalog produktów 5023324
Windows 10 w wersji 22H2 Katalog produktów 5023366
.NET Framework 4.8 Katalog produktów 5023322
.NET Framework 4.8.1 Katalog produktów 5023319
Windows 10 w wersji 21H2 Katalog produktów 5023365
.NET Framework 4.8 Katalog produktów 5023322
.NET Framework 4.8.1 Katalog produktów 5023319
Windows 10 w wersji 20H2 Katalog produktów 5023364
.NET Framework 4.8 Katalog produktów 5023322
.NET Framework 4.8.1 Katalog produktów 5023319
Windows 10 1809 (aktualizacja z października 2018) i Windows Server 2019 Katalog produktów 5023363
.NET Framework 4.7.2 Katalog produktów 5023333
.NET Framework 4.8 Katalog produktów 5023326
Windows 10 1607 (Anniversary Update) i Windows Server 2016 Katalog produktów 5023416
.NET Framework 4.7.2 Katalog produktów 5023332
.NET Framework 4.8 Katalog produktów 5023325
Windows Embedded 8.1 i Windows Server 2012 R2
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Katalog produktów 5023819
.NET Framework 4.8 Katalog produktów 5023822
Windows Embedded 8 i Windows Server 2012
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Katalog produktów 5023818
.NET Framework 4.8 Katalog produktów 5023821
Windows Embedded 7 Standard i Windows Server 2008 R2 z dodatkiem SP1
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Katalog produktów 5023820
.NET Framework 4.8 Katalog produktów 5023823
Windows Server 2008 z dodatkiem SP2
.NET Framework 4.6.2 Katalog produktów 5023820

Aktualizacje, których dotyczy problem

Dotyczy to następujących wersji platformy .NET:

  • .NET Framework 2.0, 3.0, 3.5, 3.5.1, gdy zostanie zainstalowana aktualizacja zabezpieczeń z 13 grudnia 2022 r.
  • .NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2, gdy zostanie zainstalowana aktualizacja zabezpieczeń z 13 grudnia 2022 r.
  • .NET Framework 4.8, kiedy zostanie zainstalowana aktualizacja zabezpieczeń z 13 grudnia 2022 r.
  • .NET Framework 4.8.1, kiedy zostanie zainstalowana aktualizacja zabezpieczeń z 13 grudnia 2022 r.
  • Program .NET Core 3.1 ze środowiskiem uruchomieniowym systemu Windows w wersji 3.1.32.
  • .NET 6 ze środowiskiem uruchomieniowym systemu Windows w wersji 6.0.12 lub nowszej.
  • .NET 7 ze środowiskiem uruchomieniowym systemu Windows w wersji 7.0.1 lub nowszej.

Ten problem nie wpływa na aplikację Windows XPS Viewer dostępną w systemie operacyjnym Windows.

Często zadawane pytania (FAQ)

Kiedy ta regresja została wprowadzona?

Ta regresja została wprowadzona w skumulowanych aktualizacjach zabezpieczeń z 13 grudnia 2022 r. dla platform .NET i .NET Framework.

Czy jeśli administrator zainstaluje skrypt PowerShell podany w tym artykule, komputer będzie narażony na ataki?

Nie. Skrypt programu PowerShell dotyczy tylko zgodności. Nie wyłącza aktualizacji zabezpieczeń z 13 grudnia 2022 r. ani w żaden inny sposób nie zmniejsza jej skuteczności.

Czy jeśli administrator skorzysta z alternatywnego obejścia opartego na rejestrze, komputer będzie narażony na ataki?

Tak. Wymienione powyżej alternatywne obejście wyłącza część WPF poprawki zabezpieczeń z 13 grudnia 2022 r. Jeśli administrator zastosuje alternatywne obejście, powinien poinstruować użytkowników, aby nie otwierali dokumentów XPS z niezaufanych źródeł na tych stacjach roboczych.

Te wskazówki dotyczą tylko aplikacji opartych na WPF, które ładują dokumenty XPS. Użytkownicy mogą nadal korzystać z wbudowanej aplikacji przeglądarki plików XPS systemu Windows, aby bezpiecznie wyświetlać niezaufane dokumenty XPS, nawet na komputerach, które korzystają z alternatywnego obejścia opartego na rejestrze.

Co robi firma Microsoft, aby rozwiązać ten problem ze zgodnością?

Ten problem został rozwiązany dla niektórych wersji platformy .NET Framework w aktualizacjach poza pasmem wydanych 31 stycznia 2023 r. W przypadku wersji programu .NET Framework, które nie zostały rozwiązane, firma Microsoft aktywnie bada dodatkową aktualizację, która przywróci zgodność, jednocześnie rozwiązując podstawowy problem z zabezpieczeniami.

Informacje o ochronie i zabezpieczeniach