Özet
XOML (Extensible nesne Markup Language) dosyası belirli türleri başvurur ve Visual içinde bir dosya açıldığında rasgele kod çalıştırmasına neden olan ise Microsoft Visual Studio 2019 ve Visual Studio 2017bir uzaktan kod yürütme güvenlik açığı bulunmaktadır. Studio.
Şimdi bir kısıtlama türleri .xoml dosyalarında kullanılmasına izin yok. Yeni yetkisiz türlerinden birini içeren bir .xoml dosyası açıldığında, tür yetkisiz olduğunu bildiren bir hata iletisi alırsınız.
To güvenlik açığı hakkında daha fazla bilgi edinmek, CVE-2019-1113için gidin.
Geçici Çözüm
Açılan .xoml dosyası güvenlik sorunlarına neden olmaz, yetkisiz türleri için denetleme işlemini devre dışı bırakabilirsiniz. Bunu yapmak için anahtar eklemek<appSettings>aşağıdaki gibi devenv.exe.config dosyası bölümü:
...
<appSettings>
<add key="microsoft:WorkflowComponentModel:DisableXOMLSerializerTypeChecking" value="true"/>
</appSettings>
...
XOML (Extensible nesne Markup Language) getiricisi denetimi türü bu appSetting değeri tamamen devre dışı bırakır. Değeri trueolarak ayarlanırsa, yalnızca belirli türleri vermemek için yeni aşağıdaki appSetting değer göre öncelik kazanır.
Yalnızca bazı belirli türlerini engellemek istiyorsanız, devenv.exe.config dosyasını aşağıdaki değişiklikleri yapmak zorunda:
...
<appSettings>
<add key="microsoft:WorkflowComponentModel:DisableXOMLSerializerDefaultUnauthorizedTypes" value="true"/>
</appSettings>
...
Bu değişiklik, varsayılan olarak yetkisiz tüm türlerine izin verir. Belirli tür yetkisiz olarak işaretlemek için de devenv.exe.config dosyasını aşağıdaki değişiklikleri yapmak vardır:
...
<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>
...
Bu değişiklikler yalnızca WorkflowDesigner türü olarak yetkisiz, System.Activities.Presentation derlemesinde şu şekilde işaretle:
-
Sürüm: 4.0.0.0
-
Kültür: nötr
-
PublicKeyToken: 31bf3856ad364e35
Diğer türler yetkisiz olarak işaretlemek için bu türleri için benzer girişleri ekleyebilirsiniz.