Kopsavilkums
Attālo koda izpildi ievainojamība Microsoft Visual Studio 2019 un Visual Studio 2017 XOML (Extensible Object Markup Language) failu atsauces noteiktus un izraisa dažādus koda palaišanu, kad fails tiek atvērts programmā Visual Studija.
Tagad ir ierobežojums, kurā tipi ir atļauts izmantot .xoml failus. Ja ar kādu tikko nesankcionētu veidu .xoml fails tiek atvērts, tiek saņemts kļūdas ziņojums, kurā teikts, ka tips ir nesankcionēti.
To Uzziniet vairāk par drošības problēmu, dodieties uz CVE-2019 1113.
Risinājums
Ja .xoml atvērto failu neizraisa drošības problēmas, varat atspējot nesankcionētu tipu pārbaudes procesu. Lai to izdarītu, pievienojiet atslēgu<appSettings>sadaļā failu devenv.exe.config šādi:
...
<appSettings>
<add key="microsoft:WorkflowComponentModel:DisableXOMLSerializerTypeChecking" value="true"/>
</appSettings>
...
Šī appSetting vērtība pilnībā atspējo tipa pārbaudes serializer XOML (Extensible Object Markup Language). Ja vērtība ir iestatīta uz true, ir prioritāri pār šo jauno appSetting vērtību neļaujot tikai specifiskus.
Ja vēlaties tikai ļautu dažas specifiskas, ir jāveic šādas izmaiņas devenv.exe.config failu:
...
<appSettings>
<add key="microsoft:WorkflowComponentModel:DisableXOMLSerializerDefaultUnauthorizedTypes" value="true"/>
</appSettings>
...
Šī izmaiņa ļauj visiem veidiem, kas pēc noklusējuma ir nesankcionēti. Specifiskus kā nesankcionētu atzīmētas, jums ir arī tajā devenv.exe.config veikt šādas izmaiņas:
...
<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>
...
Šīs izmaiņas zīmes tikai WorkflowDesigner tipa System.Activities.Presentation komplektu nesankcionētu, šādi:
-
Versija: 4.0.0.0
-
Culture: neitrāla
-
PublicKeyToken: 31bf3856ad364e35
Cita par nesankcionētu atzīmētas, var pievienot līdzīgas ievadnes šo failu tipu.