Rezime
Ako je XOML (Extensible objekat Markup Language) datoteka upućuje na određene tipove i izaziva slučajni koda će se pokretati prilikom otvaranja datoteke u programu Visual izvršavanje udaljenog koda ranjivost postoji u Microsoft Visual Studio 2019 i Visual Studio 2017 Studio.
Sada postoji ograničenje koje se odnosi na kojem tipova je dozvoljeno da se koristi u .xoml datotekama. Ako se otvori datoteku .xoml koja sadrži jednu od nedavno neovlašćenog tipova, dobićete poruku o grešci koja navodi da je tip neovlašćenog.
To Saznajte više o ranjivost, idite na CVE-2019-1113.
Rešenje
Ako datoteku otvorenih .xoml ne izaziva pitanja bezbednosti, možete da onemogućite proces provere za nedozvoljeno tipove. Da biste to učinili, dodajte ključ da se<appSettings>odeljku datoteke devenv.exe.config , na sledeći način:
...
<appSettings>
<add key="microsoft:WorkflowComponentModel:DisableXOMLSerializerTypeChecking" value="true"/>
</appSettings>
...
Ovaj appSetting vrednost potpuno onemogućava tip prijavljuje na serializer XOML (Extensible objekat Markup Language). Ako je vrednost postavljena na true, to ima prednost nad sljedeću vrijednost nove appSetting za dozvoljava njihovo menjanje samo određene tipove.
Ako želite samo da biste zabranili neke određene tipove, imate da napravite sledeće promene u devenv.exe.config datoteci:
...
<appSettings>
<add key="microsoft:WorkflowComponentModel:DisableXOMLSerializerDefaultUnauthorizedTypes" value="true"/>
</appSettings>
...
Ova promena omogućava svim tipovima koji su neovlašćeno po podrazumevanoj vrednosti. Da biste označili određeni tipovi kao nedozvoljeno, morate da napravite sledeće promene u devenv.exe.config datoteci:
...
<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>
...
Ove izmene označite samo WorkflowDesigner tip u System.Activities.Presentation skupštini kao nedozvoljeno, na sledeći način:
-
Verzija: 4.0.0.0
-
Kultura: neutralan
-
PublicKeyToken: 31bf3856ad364e35
Da biste označili drugi tipovi kao nedozvoljeno, možete dodati slične stavke za takve tipove.