KB5022083 Alteração na forma como as aplicações baseadas em WPF processam documentos XPS

Nota

Data de lançamento:
13 de dezembro de 2022

Nota

  • Este artigo foi revisto a 19 de maio de 2023 para atualizar chaves de registo de soluções alternativas.
  • Este artigo foi revisto a 17 de fevereiro de 2023 para atualizar a resolução.
  • Este artigo foi revisto a 31 de janeiro de 2023 para adicionar uma resolução.
  • Este artigo foi revisto a 9 de janeiro de 2023 para expandir o sintoma e adicionar a secção FAQ.
  • Este artigo foi revisto a 15 de dezembro de 2022 para adicionar uma solução adicional.

Resumo

Este artigo fornece ajuda para mitigar um problema quando, depois de instalar as atualizações de segurança de 13 de dezembro de 2022 ou 14 de fevereiro de 2023 ou as atualizações de 19 de janeiro de 2023 para .NET Framework e .NET, os utilizadores poderão ter problemas com a forma como as aplicações baseadas em WPF compõem documentos XPS.

Sintoma

Documentos XPS que utilizam elementos estruturais ou semânticos, como estrutura de tabela, storyboards ou hiperlinks, podem não ser exibidos corretamente em leitores baseados em WPF. Além disso, algumas imagens embutidas podem não ser exibidas corretamente ou exceções de referência nula podem acontecer quando documentos XPS são carregados em leitores baseados em WPF.

Solução

A Microsoft identificou uma solução de compatibilidade para este problema e criou um script do PowerShell para resolver isto.

Para instalar a solução alternativa de compatibilidade, siga os passos abaixo.

  1. Transferir o script do PowerShell
  2. Abrir uma linha de comandos do PowerShell como administrador
  3. No prompt, navegue até o diretório onde o script foi baixado
  4. Execute o comando no prompt: .\kb5022083-compat.ps1 -Install

Se o comando for bem-sucedido, ele imprimirá "Instalação concluída." na janela do console. Se o comando falhar, será apresentada a razão da falha. Para remover a solução alternativa de compatibilidade, siga as mesmas etapas acima, mas substitua a etapa (4) acima por: .\kb5022083-compat.ps1 -Uninstall

Uma vez instalada a solução alternativa de compatibilidade, as aplicações baseadas em WPF que apresentam documentos XPS devem continuar a funcionar como antes das atualizações de segurança de 13 de dezembro de 2022.

Solução alternativa

Se a primeira solução não resolver o problema, pode utilizar uma entrada do registo para desativar o comportamento de segurança avançada. Isso só deve ser feito se você tiver certeza de que todos os documentos XPS que seus processos do sistema são confiáveis, por exemplo, eles são gerados pelo seu sistema, em vez de carregados para o seu sistema, e eles não podem ser alterados por ninguém. Não desative a funcionalidade se aceitar documentos XPS da Internet, e-mails de entidades externas ou outras fontes não fidedignas.

Para desativar o comportamento de segurança avançada, execute este comando a partir de uma linha de comandos elevada:

  • 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

Em alternativa, pode utilizar Política de Grupo para criar uma entrada de REG_SZ com um nome de chave de , um nome de HKLM\SOFTWARE\Microsoft\.NETFramework\Windows Presentation Foundation\XPSAllowedTypesvalor de DisableDec2022Patch, e um valor de*

Para remover qualquer uma destas soluções e devolver o comportamento de segurança melhorado, execute estes comandos a partir de uma linha de comandos elevada:

  • 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

Isso desativa a funcionalidade aprimorada em toda a máquina e só deve ser usado quando você puder confiar totalmente em todas as entradas XPS em seus sistemas.

Resolução

Este problema foi resolvido em atualizações extraordinárias lançadas a 31 de janeiro de 2023 para versões Windows 10, versão 1607 e Windows Server 2016 e sistemas operativos mais recentes e atualizações fora de banda lançadas a 17 de fevereiro de 2023 para versões anteriores do Windows e Windows Server. Para obter o pacote autónomo para estas atualizações extraordinárias, procure o número KB no Catálogo Microsoft Update. Pode importar manualmente estas atualizações para o Windows Server Update Services (WSUS) e o Microsoft Endpoint Configuration Manager. Para obter instruções sobre o WSUS, consulte WSUS e o Site de Catálogo. Para obter instruções sobre o Configuration Manger, consulte Importar atualizações do Catálogo Microsoft Update.

Se utilizou alguma solução ou mitigação para este problema, estas já não são necessárias e recomendamos que as remova. Para remover a solução alternativa, reveja a solução ou solução alternativa que foi aplicada para obter as instruções.

Versão do Produto Atualização Artigo da Base de Dados de Conhecimento
Windows 11, versão 22H2
.NET Framework 4.8.1 Catálogo 5023327
Windows 11, versão 21H2 Catálogo 5023367
.NET Framework 4.8 Catálogo 5023323
.NET Framework 4.8.1 Catálogo 5023320
Windows Server 2022 Catálogo 5023368
.NET Framework 4.8 Catálogo 5023324
.NET Framework 4.8.1 Catálogo 5023321
Azure Stack HCI, versão 22H2
.NET Framework 4.8 Catálogo 5023324
Azure Stack HCI, versão 21H2
.NET Framework 4.8 Catálogo 5023324
Windows 10 Versão 22H2 Catálogo 5023366
.NET Framework 4.8 Catálogo 5023322
.NET Framework 4.8.1 Catálogo 5023319
Windows 10 Versão 21H2 Catálogo 5023365
.NET Framework 4.8 Catálogo 5023322
.NET Framework 4.8.1 Catálogo 5023319
Windows 10 Versão 20H2 Catálogo 5023364
.NET Framework 4.8 Catálogo 5023322
.NET Framework 4.8.1 Catálogo 5023319
Windows 10 1809 (Atualização de outubro de 2018) e Windows Server 2019 Catálogo 5023363
.NET Framework 4.7.2 Catálogo 5023333
.NET Framework 4.8 Catálogo 5023326
Windows 10 1607 (Atualização de Aniversário) e Windows Server 2016 Catálogo 5023416
.NET Framework 4.7.2 Catálogo 5023332
.NET Framework 4.8 Catálogo 5023325
Windows Embedded 8.1 e Windows Server 2012 R2
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Catálogo 5023819
.NET Framework 4.8 Catálogo 5023822
Windows Embedded 8 e Windows Server 2012
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Catálogo 5023818
.NET Framework 4.8 Catálogo 5023821
Windows Embedded 7 Standard e Windows Server 2008 R2 SP1
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Catálogo 5023820
.NET Framework 4.8 Catálogo 5023823
Windows Server 2008 SP2
NET Framework 4.6.2 Catálogo 5023820

Atualizações afetadas

As seguintes versões do .NET são afetadas:

  • .NET Framework 2.0, 3.0, 3.5, 3.5.1, quando a atualização de segurança de 13 de dezembro de 2022 estiver instalada.
  • .NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2, quando a atualização de segurança de 13 de dezembro de 2022 estiver instalada.
  • .NET Framework 4.8, quando a atualização de segurança de 13 de dezembro de 2022 é instalada.
  • .NET Framework 4.8.1, quando a atualização de segurança de 13 de dezembro de 2022 é instalada.
  • .NET Core 3.1, com o runtime do Ambiente de Trabalho do Windows versão 3.1.32.
  • .NET 6, com o tempo de execução do Ambiente de Trabalho do Windows versão 6.0.12 ou posterior.
  • .NET 7, com o tempo de execução do Ambiente de Trabalho do Windows versão 7.0.1 ou posterior.

A aplicação Windows XPS Viewer fornecida no sistema operativo Windows não é afetada por este problema.

Perguntas Frequentes (FAQs)

Quando foi introduzida esta regressão?

Esta regressão foi introduzida nas atualizações de segurança cumulativas de 13 de dezembro de 2022 para .NET e .NET Framework.

Se um administrador instalar o script do PowerShell fornecido neste artigo, deixará o computador vulnerável?

Não. O script do PowerShell só aborda a compatibilidade. Não desativa a atualização de segurança de 13 de dezembro de 2022 nem reduz a sua eficácia.

Se um administrador utilizar a solução alternativa baseada no registo, deixará o computador vulnerável?

Sim. A solução alternativa listada acima desativa a parte do WPF da correção de segurança de 13 de dezembro de 2022. Se um administrador utilizar a solução alternativa, deve instruir os seus utilizadores a não abrirem documentos XPS de origens não fidedignas nessas estações de trabalho.

Esta orientação aplica-se apenas a aplicativos baseados em WPF que carregam documentos XPS. Os utilizadores podem continuar a utilizar a aplicação de visualizador XPS incorporada do Windows para ver documentos XPS não fidedignos de forma segura, mesmo em máquinas que utilizem a solução alternativa baseada no registo.

O que está a Microsoft a fazer para resolver o problema de compatibilidade?

Este problema foi resolvido para algumas versões do .NET Framework em atualizações extraordinárias lançadas a 31 de janeiro de 2023. Para versões de .NET Framework que não são abordadas, a Microsoft está a investigar ativamente uma atualização adicional que restaura a compatibilidade, resolvendo simultaneamente o problema de segurança subjacente.

Informações sobre proteção e segurança