Povzetek
Zakoten zbornik usmrtitev ranljivost v Microsoft Visual Studio 2019 in Visual Studio 2017obstaja , če XOML (Extensible Object Markup Language) datoteko sklicuje na določene vrste in povzroči naključno kodo za zagon, ko datoteko odprete v Visual Studio.
Zdaj obstaja omejitev na katere vrste so dovoljena v .xoml datoteke. Če .xoml datoteka, ki vsebuje eno vrsto novo nepooblaščeno odprta, se prikaže sporočilo o napaki, ki pravi, da vrsto nedovoljene.
To več o ranljivosti, pojdite na CVE-2019-1113.
Rešitev
Če datoteko odprl .xoml ne povzroča varnostnih vprašanj, lahko onemogočite postopek preverjanja za nedovoljene vrste. Uganjati to, dodajte ključ do v<appSettings>oddelek devenv.exe.config datoteke, kot sledi:
...
<appSettings>
<add key="microsoft:WorkflowComponentModel:DisableXOMLSerializerTypeChecking" value="true"/>
</appSettings>
...
Ta appSetting vrednost popolnoma onemogoči tipa, preverjanje v XOML (Extensible Object Markup Language) pretvornika. Če je vrednost nastavljena na true, ima prednost pred to novo appSetting vrednost za zavrne samo določene vrste.
Če želite samo v odbiti nekatere posebne vrste, boste morali narediti te spremembe v datoteki devenv.exe.config :
...
<appSettings>
<add key="microsoft:WorkflowComponentModel:DisableXOMLSerializerDefaultUnauthorizedTypes" value="true"/>
</appSettings>
...
Ta sprememba omogoča vse vrste, ki so nepooblaščeno privzeto. Če želite označiti določene vrste kot nepooblaščen, imate tudi narediti te spremembe v datoteki 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>
...
Te spremembe označite le WorkflowDesigner vrsto v skupščini System.Activities.Presentation kot nepooblaščen, kot sledi:
-
Različica: 4.0.0.0
-
Kulture: nevtralno
-
ŽetonJavnegaKljuča: 31bf3856ad364e35
Za označevanje druge vrste kot nepooblaščen, lahko dodate podobne postavke za tiste vrste.