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 メッセージが表示されることがあります。"Web サイトはこの Web ページの表示を拒否しました" 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-XXXXXXXXXXXX)

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 アプリケーションのインスタンスを作成する .NET アプリケーションでは、次のようなエラー メッセージが生成される場合があります。

    0x80040154 (REGDB_E_CLASSNOTREG)

解決策

これらの問題を解決するには、2018 年 8 月のセキュリティと品質のロールアップまたはオペレーティング システムに適用できるセキュリティのみの更新プログラムを適用し、インストール.NET Framework。 詳細については、「CVE-2018-8356 |.NET Frameworkセキュリティ機能バイパスの脆弱性

回避策

この問題を回避するには、次のいずれかの方法を試してください。

メモ 影響を受けるアプリケーションとそのコードによっては、次の回避策が有効でない場合があります。

  • プロセスの開始方法に関する高度な知識がある場合は、 PROCESS_QUERY_INFORMATION アクセス許可を使用してプロセスを実行します。

  • .NET COM オブジェクトの CreateObject を呼び出す IIS ホステッド クラシック ASP は、"ActiveX コンポーネントでオブジェクトを作成できません" というエラーを受け取る場合があります。

    • Web サイトで匿名認証を使用している場合:

      • "アプリケーション プール ID" を使用するように Web サイトの匿名認証資格情報を変更します。
    • サイトで基本認証または Windows 認証を使用している場合:

      • アプリケーション プール ID としてアプリケーションに 1 回ログインし、.NET COM コンポーネントのインスタンスを作成します。
      • その後、他のサイト ユーザーは、エラーなしで .NET COM コンポーネントをアクティブにすることができます。
    • または、Windows 認証を使用していて、ASP アプリケーションが実行されている Windows サーバーのコンソールから Web サイトにアクセスする場合は、次のようにします。

      • .NET COM コンポーネントのインスタンスを作成すると、他のサイト ユーザーのエラーも解決されます。
  • 偽装コンテキスト内に .NET COM アプリケーションのインスタンスを作成する .NET アプリケーションでは、"0x80040154 (REGDB_E_CLASSNOTREG)" というエラー メッセージが生成される場合があります。

    • 偽装コンテキスト呼び出しの前に、.NET COM コンポーネントのインスタンスを作成します。

      • 後で偽装されたインスタンスの作成呼び出しは、想定どおりに機能します。
    • 偽装されたユーザーのコンテキストで .NET アプリケーションを実行します。

    • .NET COM オブジェクトの作成時に偽装を使用しないでください。

  • コンピューターに対して UAC が無効になっている場合は、再度有効にします。

  • プロセスが Diasymreader.dll の読み込みに失敗した場合は、アセンブリに対して次のコマンドを実行します。

    ngen install <the failing assembly>

    ngen の詳細については、「 Ngen.exe (ネイティブ イメージ ジェネレーター)」を参照してください。

警告: 次の回避策により、コンピューターまたはネットワークが悪意のあるユーザーやウイルスなどの悪意のあるソフトウェアによる攻撃に対して脆弱になる可能性があります。 これらの回避策はお勧めしません。 ただし、お客様が独自の裁量で回避策を実装できるように、この情報を提供しています。 これらの回避策は、ご自身の責任で使用してください。

  • ローカルの Administrators グループに "NETWORK SERVICE" を追加します。

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。

適用対象

2018 年 7 月 .NET Framework .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 のセキュリティ Updates