Súhrn
Chybu spúšťanie kódu na diaľku existuje v Microsoft Visual Studio 2019 Visual Studio 2017 Ak XOML (Extensible Object Markup Language) súbor odkazuje na určité typy a príčiny náhodný kód spustiť pri otvorení súboru v Visual Studio.
Existuje obmedzenie, v ktorom sú povolené typy v .xoml súbory. Ak teda .xoml súbor, ktorý obsahuje novo neoprávnené typov, sa zobrazí chybové hlásenie typu je neoprávnené.
To ďalšie informácie o zraniteľnosti, pokračujte CVE-2019-1113.
Alternatívne riešenie
Ak súbor otvoril .xoml nespôsobuje problémy so zabezpečením, môžete vypnúť proces kontroly neoprávnené typov. Vykonáte to Pridanie kľúča<appSettings>časť v súbore devenv.exe.config nasledovne:
...
<appSettings>
<add key="microsoft:WorkflowComponentModel:DisableXOMLSerializerTypeChecking" value="true"/>
</appSettings>
...
Táto appSetting hodnota úplne vypne typ kontrolu serializer XOML (Extensible Object Markup Language). Ak je hodnota nastavená na hodnotu true, má prednosť pred nasledujúce nové hodnoty appSetting odmietnutie iba určité typy.
Ak chcete iba zakázať niektoré typy, musíte vykonať tieto zmeny v súbore devenv.exe.config :
...
<appSettings>
<add key="microsoft:WorkflowComponentModel:DisableXOMLSerializerDefaultUnauthorizedTypes" value="true"/>
</appSettings>
...
Táto zmena umožňuje všetky typy, ktoré sú neoprávnené v predvolenom nastavení. Označiť určité typy ako neoprávnené, musíte vykonať tieto zmeny v súbore 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>
...
Tieto zmeny označiť len typu WorkflowDesigner System.Activities.Presentation zostavy ako neoprávnené, takto:
-
Verzia: 4.0.0.0
-
Kultúry: neutrálny
-
PublicKeyToken: 31bf3856ad364e35
Označiť iné ako neoprávnené, môžete pridať podobné položky pre tieto typy.