Resumo
Existe uma vulnerabilidade de execução remota de código no Microsoft Visual Studio 2019 e Visual Studio 2017 se faz referência a certos tipos de um ficheiro XOML (objecto Extensible Markup Language) e faz com que código aleatório ser executada quando o ficheiro é aberto no Visual Studio.
É agora uma restrição em que os tipos são permitidos para ser utilizado em ficheiros. xoml. Se for aberto um ficheiro. xoml contém um dos tipos recentemente não autorizados, receberá uma mensagem de erro que indica que o tipo é não autorizado.
To mais informações sobre a vulnerabilidade, avance para o CVE-2019-1113.
Solução
Se um ficheiro. xoml abertos não causar problemas de segurança, pode desactivar o processo de verificação para tipos não autorizados. Para tal, adicione uma chave para o<appSettings>secção do ficheiro devenv.exe.config , da seguinte forma:
...
<appSettings>
<add key="microsoft:WorkflowComponentModel:DisableXOMLSerializerTypeChecking" value="true"/>
</appSettings>
...
Desactiva esta appSetting valor completamente tipo dar entrada o serializador XOML (objecto Extensible Markup Language). Se o valor é definido como true, esta terá precedência sobre o seguinte valor de appSetting de novo para não permitir apenas tipos específicos.
Se pretender apenas para não permitir alguns tipos específicos, tem de efectuar as seguintes alterações ao ficheiro devenv.exe.config :
...
<appSettings>
<add key="microsoft:WorkflowComponentModel:DisableXOMLSerializerDefaultUnauthorizedTypes" value="true"/>
</appSettings>
...
Esta alteração permite que todos os tipos que não estão autorizados por predefinição. Para marcar a tipos específicos como não autorizado, também tem de efectuar as seguintes alterações ao ficheiro devenv.exe.config :
...
<configuration>
...
<configSections>
<sectionGroup name="System.Workflow.ComponentModel.WorkflowCompiler" type="System.Workflow.ComponentModel.Compiler.WorkflowCompilerConfigurationSectionGroup, System.Workflow.ComponentModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<section name="authorizedTypes" type="System.Workflow.ComponentModel.Compiler.AuthorizedTypesSectionHandler, System.Workflow.ComponentModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</sectionGroup>
</configSections>
...
<System.Workflow.ComponentModel.WorkflowCompiler>
<authorizedTypes>
<foo version="v4.0">
<authorizedType Assembly="System.Activities.Presentation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="System.Activities.Presentation" TypeName="WorkflowDesigner" Authorized="false"/>
</foo>
</authorizedTypes>
</System.Workflow.ComponentModel.WorkflowCompiler>
...
</configuration>
...
Estas alterações marcar apenas o tipo de WorkflowDesigner na assemblagem System.Activities.Presentation como não autorizado, do seguinte modo:
-
Versão: 4.0.0.0
-
Cultura: neutro
-
PublicKeyToken: 31bf3856ad364e35
Para marcar outros tipos como não autorizado, pode adicionar entradas semelhantes para esses tipos.