2018년 7월 보안 및 품질 롤업 업데이트를 설치한 후 COM 활성화를 사용하는 "액세스 거부" 오류 및 애플리케이션이 실패합니다.NET Framework

적용 대상
.NET

소개

.NET Framework 사용하여 COM 구성 요소를 초기화하고 제한된 권한으로 실행되는 애플리케이션은 .NET Framework 대한 2018년 7월 보안 및 품질 롤업 업데이트를 설치한 후 올바르게 시작하거나 실행하지 못할 수 있습니다.

Microsoft .NET Framework 런타임은 프로세스 토큰을 사용하여 프로세스가 관리자 권한 컨텍스트 내에서 실행 중인지 여부를 확인합니다. 필요한 프로세스 검사 권한이 없는 경우 이러한 시스템 호출이 실패할 수 있습니다. 이로 인해 "액세스 거부" 오류가 발생합니다.

증상

2018년 7월 .NET Framework 보안 업데이트를 설치한 후 "액세스가 거부되었습니다.", "클래스가 등록되지 않았습니다." 또는 "알 수 없는 이유로 인해 내부 오류가 발생했습니다." 오류 때문에 COM 구성 요소가 실패합니다. 가장 일반적인 오류 서명은 다음과 같습니다.

Exception type: System.UnauthorizedAccessException

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

SharePoint

  • 사용자가 SharePoint 사이트를 탐색할 때 다음 HTTP 403 메시지가 표시될 수 있습니다. "웹 사이트에서 이 웹 페이지 표시를 거부했습니다." HTTP 403.
  • SharePoint ULS 로그에는 다음과 같은 메시지가 포함됩니다.

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))  

  • 사용자 콘텐츠 원본을 크롤링할 때 요청이 실패하고 SharePoint ULS 로그에 다음 항목을 기록할 수 있습니다.

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)

오류가 발생하면 다음과 유사한 메시지가 SharePoint 크롤링 로그에 기록됩니다.

        sps3s://<URLtoSite> 
이 유형의 콘텐츠를 크롤링하는 데 필요한 구성 요소는 이 애플리케이션 서버에 등록되지 않았습니다. 자세한 내용은 이벤트 로그를 참조하세요. (SearchID = XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX)

BizTalk Server 관리 콘솔

  • BizTalk Server 관리 콘솔이 올바르게 시작되지 못하고 다음 오류가 반환됩니다.

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

클래식 ASP를 사용하는 IIS

  • .NET COM 개체에 대해 CreateObject 를 호출하는 호스트된 클래식 ASP는 다음과 유사한 오류 메시지를 생성할 수 있습니다.

    ActiveX component can't create object

가장을 사용하는 .NET 애플리케이션

  • 가장 컨텍스트 내에서 .NET COM 애플리케이션의 instance 만드는 .NET 애플리케이션은 다음과 유사한 오류 메시지를 생성할 수 있습니다.

    0x80040154 (REGDB_E_CLASSNOTREG)

해결 방법

이러한 문제를 resolve 2018년 8월 보안 및 품질 롤업 또는 운영 체제 및 설치된 .NET Framework 적용할 수 있는 보안 전용 업데이트를 적용합니다. 자세한 내용은 CVE-2018-8356 | 보안 기능 바이패스 취약성을 .NET Framework.

해결 방법

이 문제를 해결하려면 다음 방법 중 어느 것을 시도해 보세요.

참고 영향을 받는 애플리케이션 및 해당 코드에 따라 다음 해결 방법이 적용되지 않을 수 있습니다.

  • 프로세스를 시작하는 방법에 대한 고급 수준의 지식이 있는 경우 PROCESS_QUERY_INFORMATION 권한을 사용하여 프로세스를 실행합니다.

  • .NET COM 개체에 대해 CreateObject를 호출하는 IIS 호스팅 클래식 ASP에는 "ActiveX 구성 요소가 개체를 만들 수 없습니다." 오류가 발생할 수 있습니다.

    • 웹 사이트에서 익명 인증을 사용하는 경우:

      • 웹 사이트 익명 인증 자격 증명을 변경하여 "애플리케이션 풀 ID"를 사용합니다.
    • 사이트에서 기본 인증 또는 Windows 인증을 사용하는 경우:

      • 애플리케이션 풀 ID로 애플리케이션에 한 번 로그인한 다음 .NET COM 구성 요소의 instance 만듭니다.
      • 그 후 다른 사이트 사용자는 실패 없이 .NET COM 구성 요소를 활성화할 수 있습니다.
    • 또는 Windows 인증을 사용하고 ASP 애플리케이션이 실행되는 Windows 서버의 콘솔에서 웹 사이트에 액세스하는 경우:

      • .NET COM 구성 요소의 instance 만들면 다른 사이트 사용자의 오류도 해결됩니다.
  • 가장 컨텍스트 내에서 .NET COM 애플리케이션의 instance 만드는 .NET 애플리케이션은 "0x80040154(REGDB_E_CLASSNOTREG)" 오류 메시지를 생성할 수 있습니다.

    • 가장 컨텍스트 호출 전에 .NET COM 구성 요소의 instance 만듭니다.

      • 나중에 가장된 create instance 호출은 예상대로 작동합니다.
    • 가장된 사용자의 컨텍스트에서 .NET 애플리케이션을 실행합니다.

    • .NET COM 개체를 만들 때 가장을 사용하지 않습니다.

  • 컴퓨터에 대해 UAC를 사용하지 않도록 설정한 경우 다시 사용하도록 설정합니다.

  • 프로세스가 Diasymreader.dll 로드하지 못하는 경우 어셈블리에 대해 다음 명령을 실행합니다.

    ngen install <the failing assembly>

    ngen에 대한 자세한 내용은 Ngen.exe(네이티브 이미지 생성기)를 참조하세요.

경고: 다음 해결 방법으로 인해 컴퓨터 또는 네트워크가 악의적인 사용자 또는 바이러스와 같은 악성 소프트웨어의 공격에 더 취약할 수 있습니다. 이러한 해결 방법은 권장하지 않습니다. 그러나 사용자의 재량에 따라 해결 방법을 구현할 수 있도록 이 정보를 제공하고 있습니다. 이러한 해결 방법은 사용자 고유의 위험에서 사용합니다.

  • 로컬 관리자 그룹에 "NETWORK SERVICE"를 추가합니다.

상태

Microsoft에서 이는 "적용 대상" 섹션에 나열된 Microsoft 제품에서의 문제임을 확인했습니다.

적용 대상

2018년 7월 .NET Framework 모든 적용 가능하고 지원되는 Windows 버전에서 .NET Framework 3.5, 4.0, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1 및 4.7.2용 보안 업데이트