Sammanfattning
Ett säkerhetsproblem finns i Microsoft Visual Studio 2019 och Visual Studio-2017 om (Extensible Object Markup Language) för XOML-filen refererar vissa typer och orsakar slumpmässiga koden som ska köras när filen öppnas i Visual Studio.
Det finns nu en begränsning som är tillåtna som ska användas i XOML-filer. Om XOML-filen som innehåller något av följande nyligen obehörig öppnas, får du ett felmeddelande om att typen är otillåten.
To mer information om problemet, gå till CVE-2019-1113.
Lösning
Om öppnade XOML-filen inte orsakar säkerhetsproblem kan du inaktivera processen som kontrollerar för obehöriga. Det gör du genom att lägga till en nyckel till den<appSettings>avsnitt i filen devenv.exe.config på följande sätt:
...
<appSettings>
<add key="microsoft:WorkflowComponentModel:DisableXOMLSerializerTypeChecking" value="true"/>
</appSettings>
...
Den här appSetting värde helt inaktiverar typkontrollen i serialiseraren XOML (Extensible Object Markup Language). Om värdet är truehar företräde framför följande nya appSetting värde för att inte tillåta endast specifika typer.
Om du vill att endast tillåta vissa specifika typer måste du göra följande ändringar i filen devenv.exe.config :
...
<appSettings>
<add key="microsoft:WorkflowComponentModel:DisableXOMLSerializerDefaultUnauthorizedTypes" value="true"/>
</appSettings>
...
Den här ändringen möjliggör alla typer som är auktoriserad som standard. Om du vill markera vissa typer som obehörig måste du också göra följande ändringar i filen 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>
...
WorkflowDesigner typ i System.Activities.Presentation -sammansättningen som obehöriga, markerar du dessa ändringar på följande sätt:
-
Version: 4.0.0.0
-
Kultur: neutral
-
PublicKeyToken: 31bf3856ad364e35
Du kan lägga till liknande poster för dessa typer om du vill markera andra typer som obehöriga.