Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Podsumowanie

Jeśli plik XOML (Extensible obiektu Markup Language) odwołuje się do niektórych typów i powoduje losowe kodu do uruchomienia, gdy plik jest otwarty w Visual to luka umożliwiająca wykonanie zdalnego kodu istnieje w programie Microsoft Visual Studio 2019 i Visual Studio 2017  Studio.

Obecnie istnieje ograniczenie, w którym typy mogą być używane w plikach xoml. Po otwarciu pliku xoml, który zawiera jeden z typów nowo nieautoryzowanych, zostanie wyświetlony komunikat o błędzie, informujący, że typ jest nieautoryzowany.

To Dowiedz się więcej na temat luki w zabezpieczeniach, przejdź do CVE-2019-1113.

Obejście

Jeśli plik xoml otwarty nie powoduje problemów z zabezpieczeniami, można wyłączyć proces sprawdzania zgodności typów nieautoryzowanych. Aby to zrobić, należy dodać klucz do<appSettings>sekcja pliku devenv.exe.config , w następujący sposób:

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

Ten appSetting wartość całkowicie wyłącza typ sprawdzania w serializatora XOML (Extensible obiektu Markup Language). Jeśli wartość jest ustawiona na wartość true, to ma pierwszeństwo przed następującą nową wartość AppSetting klucza dla wykluczający tylko określonych typów.

Tylko do odrzucenia niektórych określonych typów, należy wprowadzić następujące zmiany w pliku devenv.exe.config :

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

Ta zmiana pozwala wszystkich typów, które są nieautoryzowane domyślnie. Aby oznaczyć określonych typów jako nieautoryzowane, należy również wprowadzić następujące zmiany w pliku 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>
...

Te zmiany znaku typu w WorkflowDesigner w zestawie System.Activities.Presentation jako nieautoryzowany, w następujący sposób:

  • Wersja: 4.0.0.0

  • Kultury: neutralne

  • PublicKeyToken: 31bf3856ad364e35

Aby oznaczyć inne typy jako nieautoryzowane, można dodać wpisy podobne do tych typów.

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×