Sažetak
Slabe točke izvršavanje udaljenog koda postoji Microsoft Visual Studio 2019 i Visual Studio 2017 ako reference određene vrste XOML (Extensible objekt Markup Language) datoteke i uzrokuje slučajni kod će se pokrenuti kada se datoteka otvori u Visual Studio.
Sada je ograničenje na kojem vrste dopušteno koristiti u .xoml datoteke. Ako .xoml datoteka koja sadrži jednu od vrsta nanovo neovlašteno otvoren, primiti poruku o pogrešci koja navodi da je neovlaštena vrsta.
To Saznajte više o na slabe točke, idite na CVE 2019 1113.
Zaobilazno rješenje
Ako datoteku otvoriti .xoml uzrokovati sigurnosnim problemima, možete onemogućiti postupak provjere za neovlašteno vrste. Da biste to učinili, dodajte ključ za u<appSettings>Sekcija datoteku devenv.exe.config , na sljedeći način:
...
<appSettings>
<add key="microsoft:WorkflowComponentModel:DisableXOMLSerializerTypeChecking" value="true"/>
</appSettings>
...
Ovaj appSetting vrijednost potpuno onemogućuje vrstu provjere serijalizatora XOML (Extensible objekt Markup Language). Ako je vrijednost postavljena na true, ima prednost nad sljedećim novu vrijednost appSetting za jer se onemogućuje samo određene vrste.
Ako samo želite zabraniti neke određene vrste, imate sljedeće promjene u datoteci devenv.exe.config :
...
<appSettings>
<add key="microsoft:WorkflowComponentModel:DisableXOMLSerializerDefaultUnauthorizedTypes" value="true"/>
</appSettings>
...
Ova promjena omogućuje sve vrste neovlašteno po zadanom. Da biste označili određene vrste kao neovlašteno također imaju sljedeće promjene u datoteci 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 promjene označiti samo vrstu WorkflowDesigner u sklopu System.Activities.Presentation kao neovlašteno, kako slijedi:
-
Verzija: 4.0.0.0
-
Kulture: neutralno
-
Token: 31bf3856ad364e35
Da biste označili ostale vrste kao neovlašteno možete dodati slične stavke te vrste.