Applies ToVisual Studio 2019 Visual Studio 2017

요약

XOML(Extensible Object Markup Language) 파일이 특정 유형을 참조하고 파일이 Visual Studio에서 열렸을 때 무작위 코드가 실행될 경우 Microsoft Visual Studio 2019  Visual Studio 2017에 원격 코드 실행 취약성이 존재합니다.

이제 .xoml 파일에 사용될 수 있는 유형이 제한됩니다. 승인을 받지 않은 새로운 유형 중 하나가 포함된 .xoml 파일이 열린 경우 해당 유형이 승인을 받지 않았다는 오류 메시지를 수신하게 됩니다.

이 취약성에 대해 자세히 알아보려면 CVE-2019-1113을 참조하세요.

해결 방법

열린 .xoml 파일이 보안 문제를 유발시키지 않는다면 승인을 받지 않은 유형을 검사하는 작업을 비활성화할 수 있습니다. 이렇게 하려면 다음과 같이  키를 devenv.exe.config 파일의 <appSettings> 섹션에 추가합니다.

...
<appSettings>
<add key="microsoft:WorkflowComponentModel:DisableXOMLSerializerTypeChecking" value="true"/>
</appSettings>
...

이 appSetting 값은 XOML(Extensible Object Markup Language) 직렬 변환기에서 유형 검사를 완전히 비활성화 합니다. 값이 으로 설정되면 특정 유형만 비활성화하도록 다음과 같은 새로운 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>
...

이렇게 하면 다음과 같이 System.Activities.Presentation 어셈블리에 있는 WorkflowDesigner 유형만 승인되지 않은 것으로 표시됩니다.

  • 버전: 4.0.0.0

  • Culture: 중립

  • PublicKeyToken: 31bf3856ad364e35

다른 유형을 승인되지 않은 것으로 표시하려면 유사한 항목을 이 유형에 추가할 수 있습니다.

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.