Ranljivost oddaljenega izvajanja kode, če določene vrste so navedeni v datoteki XOML

Velja za: Visual Studio 2019Visual Studio 2017

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.