Erros de "Acesso negado" e aplicativos com ativação COM falham após a instalação das atualizações de Pacote Cumulativo de Segurança e Qualidade de julho de 2018 para o .NET Framework

Aplica-se a
.NET

Introdução

Os aplicativos que dependem do .NET Framework para inicializar um componente COM e que são executados com permissões restritas podem falhar ao serem iniciados ou executados corretamente após a instalação das atualizações cumulativas de segurança e qualidade de julho de 2018 para o .NET Framework.

O Microsoft .NET Framework runtime usa o token de processo para determinar se o processo está sendo executado em um contexto elevado. Essas chamadas do sistema poderão falhar se as permissões de inspeção de processo necessárias não estiverem presentes. Isso causa um erro de "acesso negado".

Sintomas

Depois que você instala qualquer uma das Atualizações de Segurança do .NET Framework de julho de 2018, um componente COM não é carregado devido aos erros "acesso negado", "classe não registrada" ou "a falha interna ocorreu por razões desconhecidas". A assinatura de falha mais comum é a seguinte:

Exception type: System.UnauthorizedAccessException

Message: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

SharePoint

  • Quando os usuários navegam para um site do SharePoint, eles podem ver a seguinte mensagem HTTP 403: "O site se recusou a mostrar esta página da Web" HTTP 403.
  • Os logs ULS do SharePoint conterão mensagens como as seguintes:

w3wp.exe (0x1894)         0x0B94  SharePoint Foundation  General 0000       High                UnauthorizedAccessException for the request. 403 Forbidden will be returned. Error=An error occurred creating the configuration section handler for system.serviceModel/extensions: Could not load file or assembly <AssemblySignature>  or one of its dependencies. Access is denied. (C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Config\machine.config line 180)  

 w3wp.exe (0x1894)         0x0B94  SharePoint Foundation  General b6p2      VerboseEx                Sending HTTP response 403:403 FORBIDDEN.    

w3wp.exe (0x1894)         0x0B94  SharePoint Foundation  General 8nca       Verbose                Application error when access /, Error=Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))  

  • Ao rastrear uma fonte de conteúdo de pessoas, a solicitação pode falhar e registrar a seguinte entrada no log ULS do SharePoint:

mssearch.exe (0x118C) 0x203C SharePoint Server Search Crawler:Gatherer Plugin cd11 Warning The start address sps3s://<URLtoSite> cannot be crawled.  Context: Application 'Search_Service_Application', Catalog 'Portal_Content'  Details:  Class not registered   (0x80040154)

Quando o erro ocorre, uma mensagem semelhante à seguinte é registrada nos logs de rastreamento do SharePoint:

        sps3s://<URLtoSite> 
Um componente necessário para rastrear esse tipo de conteúdo não está registrado neste servidor de aplicativos. Exiba os logs de eventos para obter mais informações. (SearchID = XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX)

Console de Administração do BizTalk Server

  • O Console de Administração do BizTalk Server não é iniciado corretamente e retorna os seguintes erros:

An internal failure occurred for unknown reasons. (WinMgmt)

Program Location:

   at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)

   at System.Management.ManagementObject.Get()

   at Microsoft.BizTalk.SnapIn.Framework.WmiProvider.SelectInstance

IIS com ASP clássico

  • Um ASP Clássico Hospedado chamando CreateObject para objetos .NET COM pode gerar uma mensagem de erro semelhante à seguinte:

    ActiveX component can't create object

Aplicativo .NET que usa representação

  • Um aplicativo .NET que cria uma instância de um aplicativo .NET COM em um contexto de representação pode gerar uma mensagem de erro semelhante à seguinte:

    0x80040154 (REGDB_E_CLASSNOTREG)

Resolução

Para resolver esses problemas, aplique os Pacotes Cumulativos de Segurança e Qualidade de agosto de 2018 ou as atualizações Apenas segurança aplicáveis ao seu sistema operacional e ao .NET Framework instalado. Para obter mais informações, acesse CVE-2018-8356 | Vulnerabilidade de bypass do recurso de segurança do .NET Framework.

Solução alternativa

Como solução alternativa para esse problema, tente qualquer um dos seguintes métodos.

Observação Dependendo do aplicativo afetado e de seu código, as seguintes soluções alternativas podem não ser eficazes.

  • Se você tiver conhecimento de nível avançado sobre como os processos são iniciados, execute o processo usando a permissão PROCESS_QUERY_INFORMATION .

  • IIS Hosted Classic ASP chamando CreateObject para objetos .NET COM pode receber um erro "O componente ActiveX não pode criar o objeto":

    • Se o site usa Autenticação Anônima:

      • Altere as credenciais de Autenticação Anônima do Site para usar a "Identidade do pool de aplicativos".
    • Se seu site usa a Autenticação Básica ou a Autenticação do Windows:

      • Faça logon no aplicativo uma vez como a identidade do pool de aplicativos e, em seguida, crie uma instância do componente .NET COM.
      • Depois disso, outros usuários do site poderão ativar o componente .NET COM sem falhas.
    • Como alternativa, se você estiver usando a autenticação do Windows e estiver acessando o site do console do servidor Windows no qual o aplicativo ASP é executado:

      • A criação de uma instância do componente .NET COM também resolve erros para outros usuários do site.
  • Um aplicativo .NET que cria uma instância do aplicativo .NET COM em um contexto de representação pode gerar uma mensagem de erro "0x80040154 (REGDB_E_CLASSNOTREG)":

    • Crie uma instância do componente .NET COM antes da chamada de contexto de representação.

      • As chamadas de instância de criação representadas posteriormente funcionam conforme o esperado.
    • Execute o aplicativo .NET no contexto do usuário representado.

    • Evite usar a representação ao criar o objeto .NET COM.

  • Se o UAC estiver desabilitado para o computador, habilite-o novamente.

  • Se o processo não conseguir carregar Diasymreader.dll, execute o seguinte comando para o assembly:

    ngen install <the failing assembly>

    Para obter mais informações sobre ngen, consulte Ngen.exe (Native Image Generator).

Aviso: As soluções alternativas a seguir podem tornar o computador ou a rede mais vulneráveis a ataques de usuários ou software mal-intencionados, como vírus. Não recomendamos essas soluções alternativas. No entanto, estamos fornecendo essas informações para que você possa implementar as soluções alternativas a seu próprio critério. O uso dessas soluções alternativas é de sua responsabilidade.

  • Adicione "SERVIÇO DE REDE" ao grupo local de Administradores.

Status

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Aplicável a

Julho de 2018 .NET Framework Atualizações de segurança para o .NET Framework 3.5, 4.0, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1 e 4.7.2 em todas as versões aplicáveis e com suporte do Windows