Zusammenfassung

In Visual Studio 2019 und Visual Studio 2017  besteht eine Sicherheitsanfälligkeit bezüglich Remotecodeausführung, wenn in einer XOML-Datei (Extensible Object Markup Language) bestimmte Typen angegeben sind. Dadurch wird zufälliger Code ausgeführt, wenn die Datei in Visual Studio geöffnet wird.

Es gibt keine Beschränkung bezüglich der Typen, die in XOML-Dateien verwendet werden dürfen. Wenn eine XOML-Datei geöffnet wird, die nur einen der neu als nicht autorisiert festgelegten Typen enthält, wird eine Fehlermeldung angezeigt, dass dieser Typ nicht zulässig ist.

Weitere Informationen zu dieser Sicherheitsanfälligkeit finden Sie unter CVE-2019-1113.

Problemumgehung

Wenn eine geöffnete XOML-Datei keine Sicherheitsprobleme verursacht, können Sie die Überprüfung auf nicht autorisierte Typen deaktivieren. Fügen Sie dazu im Abschnitt <appSettings> der Datei devenv.exe.config wie folgt einen Schlüssel hinzu:

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


Mit diesem appSetting-Wert wird die Typüberprüfung im XOML-Serialisierungsmodul (Extensible Object Markup Language) vollständig deaktiviert. Ist der Wert auf true gesetzt, hat dies Vorrang vor dem folgenden neuen appSetting-Wert, mit dem nur bestimmte Typen nicht zugelassen werden.

Wenn Sie bestimmte Typen nicht zulassen möchten, müssen Sie die folgenden Änderungen in der Datei devenv.exe.config vornehmen:

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


Durch diese Änderung werden alle Typen zugelassen, die standardmäßig nicht zulässig sind. Um bestimmte Typen als nicht zulässig zu kennzeichnen, müssen Sie auch die folgenden Änderungen in der Datei devenv.exe.config vornehmen:

...
<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>
...


Durch diese Änderungen wird wie folgt nur der Typ WorkflowDesigner in der System.Activities.Presentation-Assembly als nicht zulässig gekennzeichnet:

  • Version: 4.0.0.0

  • Culture: neutral

  • PublicKeyToken: 31bf3856ad364e35

Um andere Typen als unzulässig zu kennzeichnen, können Sie ähnliche Einträge für diese Typen hinzufügen.

Benötigen Sie weitere Hilfe?

Ihre Office-Fähigkeiten erweitern
Schulungen erkunden
Neue Funktionen als Erster erhalten
Microsoft Insider beitreten

War diese Information hilfreich?

Wie zufrieden sind Sie mit der Übersetzungsqualität?
Was hat Ihre Erfahrung beeinflusst?

Vielen Dank für Ihr Feedback!

×