Загальні відомості
До віддаленого виконання коду уразливості, у Microsoft Visual Studio-2019 і Visual Studio, 2017існує , якщо на XOML (розширювана мова розмітки об'єкт)-файл посилається на певних типів, що приводить до випадкового коду для запуску, коли файл відкривається у Visual Studio.
В даний час обмеження, на якому типи можуть використовуватися в .xoml файли. Якщо файл .xoml одного нещодавно несанкціонованих типів, відкрито, з'являється повідомлення про помилку зазначається, що тип несанкціонованих.
To, Дізнайтеся більше про дефект, перейдіть до 2019 CVE 1113 році..
Інші способи вирішення
Якщо до файлу, відкритого .xoml не причина проблеми безпеки, процес перевірки несанкціонованих типів можна вимкнути. Для цього додайте до на<appSettings>розділ devenv.exe.config файлу, наступним чином:
...
<appSettings>
<add key="microsoft:WorkflowComponentModel:DisableXOMLSerializerTypeChecking" value="true"/>
</appSettings>
...
Це appSetting значення повністю , вимикає типу, повернення на засіб серіалізації XOML (розширювана мова розмітки об'єкт). Якщо значення значення true, який він має пріоритет над нижче appSetting нове значення для залишити лише на певних типів.
Лише для того, щоб заборонити деякі певних типів, потрібно зробити такі зміни до файлу devenv.exe.config :
...
<appSettings>
<add key="microsoft:WorkflowComponentModel:DisableXOMLSerializerDefaultUnauthorizedTypes" value="true"/>
</appSettings>
...
Ця зміна, дозволяє всі типи, які мають права доступу за промовчанням. Для позначення певних типів несанкціонованих, потрібно також вносити зміни 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>
...
Ці зміни позначити лише WorkflowDesigner типу System.Activities.Presentation компонування, як несанкціонованого, наступним чином:
-
Версія: 4.0.0.0
-
Культури: нейтральний
-
PublicKeyToken: 31bf3856ad364e35
Позначити інших типів, як несанкціонованих, можна додати приблизно записи для цих типів.