Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

Аннотация

Существует уязвимость удаленного выполнения кода в Microsoft Visual Studio 2019 и Visual Studio 2017 г. Если файл XOML (расширяемый язык разметки объекта) ссылается на определенные типы и в результате случайного кода для выполнения при открытии файла в Visual Studio.

Теперь является ограничением которого типы могут использоваться в файлах .xoml. Если открыть XOML-файл, содержащий один из недавно несанкционированных типов, появляется сообщение об ошибке, указывающее на тип несанкционированного.

To Дополнительные сведения о данной уязвимости, перейдите к CVE 2019 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.»

Чтобы пометить другие типы в качестве несанкционированного, можно добавить аналогичные операции для этих типов.

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×