Après avoir installé la mise à jour correspondant au bulletin de sécurité Microsoft [MS14-009](https://technet.microsoft.com/security/bulletin/ms14-009 Microsoft .NET Framework, le marshaling des types de réflexion peut ne pas fonctionner comme prévu sur DCOM. En outre, les fonctionnalités macro de Microsoft Visual Studio peuvent ne pas fonctionner comme prévu.
Pour plus d’informations sur MS14-009, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
2916607 MS14-009 : des vulnérabilités dans .NET Framework pourraient permettre une élévation de privilèges datée du 11 février 2014
Symptômes
Bulletin de sécurité [MS14-009](https://technet.microsoft.com/security/bulletin/ms14-009 .NET Framework bloque le marshaling pour les types de réflexion. Les types bloqués incluent les suivants, ainsi que tous les types dérivés de ces types.
- System.Type
- System.Reflection.Assembly
- System.Reflection.MemberInfo
- System.Reflection.Module
- System.Reflection.MethodBody
- System.Reflection.ParameterInfo
- System.Reflection.TypeInfo
- System.Reflection.MethodInfo
- System.Reflection.FieldInfo
Cause
Bien que la plupart des applications ne soient pas affectées par cette modification, si une application doit utiliser la réflexion sur DCOM, vous pouvez contourner la limitation en ajoutant le commutateur de configuration AllowDComReflection dans la section d’exécution <> de votre <fichier Application>.exe.config comme suit :
<?xml version ="1.0 » ?>
<configuration>
<runtime>
<AllowDComReflection enabled="1"/>
</runtime>
<Commande /configuration>
La définition de ce commutateur de configuration permet à une application d’utiliser la réflexion sur DCOM.
Pour restaurer en toute sécurité la fonctionnalité des macros Visual Studio, mettez à jour l’un des fichiers de configuration d’application suivants, en fonction de la version de Visual Studio installée sur le système.
| Version | Dossier | Nom de fichier |
|---|---|---|
| Visual Studio 2005 Service Pack 1 (SP1) | \Program Files (x86)\Common Files\Microsoft Shared\VSA\8.0\VsaEnv | Vsmsvr.exe.config |
| Visual Studio 2008 | \Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv | Vsmsvr.exe.config |
| Visual Studio 2010 | \Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv | Vsmsvr10.exe.config |
Remarque Pour les installations 32 bits, le chemin d’accès se trouve sous \Program Files\.
La modification du fichier de configuration est la même pour toutes les versions de Visual Studio concernées. Vous devez ajouter le commutateur AllowDComReflection dans la section runtime <> comme suit :
<AllowDComReflection enabled="1"/>
Cette mise à jour empêche les types de réflexion de quitter le code managé, mais pas d’entrer dans le code managé. Par conséquent, dans la plupart des cas, vous devez uniquement définir le commutateur de configuration côté client. Vous ne devez utiliser ce commutateur de configuration que pour les applications pour lesquelles le commutateur doit être défini.
Remarque Vous devez tout de même sécuriser la connexion au serveur.
Sécurisation des points de terminaison
Étant donné que les points de terminaison non fiables peuvent élever leurs autorisations si le commutateur de configuration est utilisé, vous devez vous assurer que le point de terminaison qui envoie les types de réflexion peut approuver la connexion au point de terminaison distant.
Pour plus d’informations sur la configuration générale de la sécurité DCOM, reportez-vous au site web MSDN (Microsoft Developer Network) à l’adresse suivante :
http://msdn.microsoft.com/en-us/library/windows/desktop/ms678426.aspx
Pour plus d’informations pour les utilisateurs des Services entreprise (COM+), consultez le site web MSDN à l’adresse suivante :
http://msdn.microsoft.com/en-us/library/ms973847.aspx#entserv_topic6
Les informations contenues dans cet article s'appliquent aux :
- Microsoft .NET Framework 1.0 SP3
- Microsoft .NET Framework 1.1 SP1
- Microsoft .NET Framework 2.0 SP2
- Microsoft .NET Framework 3.5
- Microsoft .NET Framework 3.5 SP1
- Microsoft .NET Framework 3.5.1
- Microsoft .NET Framework 4
- Microsoft .NET Framework 4.5 ;