この記事では、Sitecoreソフトウェアの重大な脆弱性(SC2021-001-475944)と、その解決策について説明しています。
この問題は、.NETのSystem.Text.Encodings.Web.dllのリモート コード実行脆弱性に関係しています(CVE-2021-26701)。
弊社は、Sitecoreのお客様とパートナー様に下記の情報について熟知していただき、全てのSitecoreシステムに修正を適用していただくことをお勧めいたします。また、お客様の環境をセキュリティに対応したバージョンに維持し、全ての利用可能なセキュリティ修正プログラムを、遅滞なく適用していただくことを推奨いたします。
最新のセキュリティ情報に関する通知を受け取りたい場合は、セキュリティ情報を購読してください。
お客様およびパートナー様がセキュリティ脆弱性の重大度を理解しやすくなるよう、Sitecoreではセキュリティ脆弱性の重大度の定義の記事に記載されている定義を使用してセキュリティの問題を説明いたします。
影響を受けるバージョン
脆弱性SC2021-001-475944は、以下のSitecore XPバージョンに影響します。
上記には、CMSオンリー モードおよびxDB有効化モード、単一インスタンスおよび複数インスタンス環境、Managed Cloud環境、そして全てのSitecoreのサーバー ロール(コンテンツ配信(CD)、コンテンツ編集(CM)、Reporting、Processing、パブリッシュなど)が含まれます。
また、以下のSitecore Commerceバージョンにも影響します。
加えて、幾つかのスタンドアローン サービスも影響を受けます。
影響を受けるバージョン向けの解決策がご利用いただけます。
重要な注意点:
影響を受けないバージョン
以下のSitecore XPバージョンはこの脆弱性の影響を受けません。
Sitecore Commerceおよびその他のモジュールで、「影響を受けるバージョン」の節に記載されていないバージョンについては、この脆弱性の影響を受けません。
この脆弱性を修正するには、System.Text.Encodings.Web.dllを置き換え、必要に応じてバインディング リダイレクトを適用します。
Sitecoreバージョン9.0 Update-1から10.1 Initial Release(10.0 Update-2は除く)は、更新する必要があります。
オンプレミスのソリューションについては、CVE-2021-26701の「How do I fix the issue」のセクションで言及されているアップグレードを全てのマシンにインストールする必要があります。
※註: Sitecore XP 10.1 Initial Releaseは、Sitecore XP 10.1 Update-1にアップグレードすることを強く推奨いたします。その他の方法としては、System.Text.Encodings.Webアセンブリをアップグレードする方法が考えられます。しかしこの場合、4.7.2にアップグレードする必要があるのに対して、他の影響を受けるSitecore XPバージョンはこのアセンブリのバージョンを4.5.1にアップグレードする事が必要です。
新しいSystem.Text.Encodings.Webパッケージは、以下のリンクから入手できます。
4.5.1 / 4.7.2
XP1トポロジーが使用されており、「System.Text.Encodings.Web.dll」が以下の「アセンブリのパス」に存在する場合は、以下の表を参考にコンポーネントをアップデートしてください。
ロール名 | アセンブリの バージョン |
アセンブリのパス | 設定のパス |
CM |
4.5.1 / 4.7.2 |
wwwroot\{instance}\bin\ |
wwwroot\{instance}\Web.config |
CD |
4.5.1 / 4.7.2 |
wwwroot\{instance}\bin\ |
wwwroot\{instance}\Web.config |
Processing |
4.5.1 / 4.7.2 |
wwwroot\{instance}\bin\ |
wwwroot\{instance}\Web.config |
Reporting |
4.5.1 / 4.7.2 |
wwwroot\{instance}\bin\ |
wwwroot\{instance}\Web.config |
MA |
4.5.1 / 4.7.2 |
wwwroot\{instance}\bin\ |
wwwroot\{instance}\Web.config |
MA Engine |
4.5.1 / 4.7.2 |
wwwroot\{instance}\App_data\jobs\ |
{Location path}\ or {Location path}\maengine.exe.config |
MA Reporting |
4.5.1 / 4.7.2 |
wwwroot\{instance}\bin\ |
wwwroot\{instance}\Web.config |
Collection |
4.5.1 / 4.7.2 |
wwwroot\{instance}\bin\ |
wwwroot\{instance}\Web.config |
Cortex Processing |
4.5.1 / 4.7.2 |
wwwroot\{instance}\bin\ |
wwwroot\{instance}\Web.config |
Cortext Processing Engine |
4.5.1 / 4.7.2 |
wwwroot\{instance}\App_Data\jobs\ |
{Location path}\ |
Cortex Reporting |
4.5.1 / 4.7.2 |
wwwroot\{instance}\bin\ |
wwwroot\{instance}\Web.config |
Collection Search |
4.5.1 / 4.7.2 |
wwwroot\{instance}\bin\ |
wwwroot\{instance}\Web.config |
Index Worker |
4.5.1 / 4.7.2 |
wwwroot\{instance}\App_data\jobs\ |
{Location path}\ |
RefData |
4.5.1 / 4.7.2 |
wwwroot\{instance}\bin\ |
{Location path}\Web.config |
XP0トポロジーが使用されており、「System.Text.Encodings.Web.dll」が以下の「アセンブリのパス」に存在する場合は、以下の表を参考にコンポーネントをアップデートしてください。
ロール名 | アセンブリの バージョン |
アセンブリのパス | 設定のパス |
CM/CD |
4.5.1 / 4.7.2 |
wwwroot\{instance}\bin\ |
wwwroot\{instance}\Web.config |
Collection MA |
4.5.1 / 4.7.2 |
wwwroot\{collection instance}\App_Data\jobs\ continuous\AutomationEngine\ |
{Location path}\ or {Location path}\maengine.exe.config |
Collection Index Worker |
4.5.1 / 4.7.2 |
wwwroot\{collection instance}\App_Data\jobs\ continuous\IndexWorker\ |
{Location path}\ |
ProcessingEngine |
4.5.1 / 4.7.2 |
wwwroot\{collection instance}\App_Data\jobs\ continuous\ProcessingEngine\ |
{Location path}\ |
Collection |
4.5.1 / 4.7.2 |
wwwroot\{collection instance}\bin\ |
wwwroot\{collection instance}\Web.config |
脆弱性のあるSystem.Text.Encodings.Web.dllアセンブリは、SearchおよびCollection xConnectロールの「tools」と「collectiondeployment」フォルダーの配下に存在します。このツールはSitecore XPのデプロイメントの間に一回だけ実行され、Sitecore XPの実行コードの一部ではありません。そのため、これらはそのままにして問題ありませんが、必要な場合は両方のフォルダーを削除するか、もしくはアセンブリ バージョン4.7.2にアップデートしても問題ありません。
註: 下記のバインディング リダイレクトの記述で記載されているバージョンは、この記事およびNuGet Galleryで言及されている4.5.1/4.7.2のバージョン表記とは異なりますが、正しいものです。
下記のバージョンは、「System.Text.Encodings.Web」のAssemblyVersion属性の値を示しています。
「設定のパス」欄に示されているファイルを、次の4.5.1バージョン向けのアセンブリ バインディング設定を使用して更新してください。
<dependentAssembly> <assemblyIdentity name="System.Text.Encodings.Web" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.0.3.1" newVersion="4.0.3.1" /> </dependentAssembly>
Sitecore XP 10.1 Initial Releaseに関しては、「設定のパス」欄に示されているファイルを、次の4.7.2バージョン向けのアセンブリ バインディング設定を使用して更新してください。
<dependentAssembly> <assemblyIdentity name="System.Text.Encodings.Web" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.0.5.1" newVersion="4.0.5.1" /> </dependentAssembly>
Sitecore Experience Commerceをアップデートする
以下の手順に従って、CommerceエンジンSDKをリビルドし、全てのエンジン インスタンスを再パブリッシュします。
Sitecore Experience Commerce 9.0 Initial Release、Update-1、Update-2およびUpdate-3バージョンにも、Sitecore Identityの古いバージョン(1.0から1.4) が含まれていますが、そのバイナリも、「System.Text.Encodings.Web.dll」の影響を受けるバージョンを含んでいます。
脆弱性を解決するには、Sitecore Identity Server SDKをビルドしてパブリッシュする必要があります。
Sitecore Identity Server SDKの詳細につきましては、このページ(英語)をご参照ください。
Sitecore IdentityとSitecore Horizon Standalone Servicesをアップデートする
いくつかのサービスには独自のライフサイクルがあり、異なるバージョンのSystem.Text.Encodings.Web.dllが必要です。当該インスタンスのrootフォルダーのライブラリを置き換えます。
以下のテーブルに記載されているバージョンはアップデートが必要です。
製品名 |
アセンブリの |
アセンブリのパス |
Sitecore Identity 2.0.0-4.0.0 |
wwwroot\{instance}\ |
|
Sitecore Identity 5.0.0 |
wwwroot\{instance}\refs\ |
|
Sitecore Identity 5.1.0 |
wwwroot\{instance}\ |
|
Sitecore Identity 6.0.0 |
wwwroot\{instance}\refs\ |
|
Sitecore Horizon 9.3.0 |
wwwroot\{instance}\ |
|
Sitecore Horizon 10.1.0 |
wwwroot\{instance}\ |
System.Text.Encodings.Webパッケージの.netstandard2.0 4.5.1 / 4.7.2バージョンを使用します。
Sitecore Publishing Service Standalone Serviceをアップデートする
ソリューションで使用されているPublishing Serviceのバージョンによって、手順が若干異なります。
System.Text.Encodings.Webパッケージの.netstandard2.0 4.7.2バージョンを使用します。
次に、バインディング リダイレクトをSitecore.Framework.Publishing.Host.exe.configファイルに追加します。
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Text.Encodings.Web" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.0.5.1" newVersion="4.0.5.1" /> </dependentAssembly> </assemblyBinding>
System.Text.Encodings.Webパッケージの.netstandard2.0 4.5.1バージョンを使用します。
次に、Sitecore.Framework.Publishing.Host.exe.configファイルで既存のバインディング リダイレクトを以下のものに置き換えます。
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Text.Encodings.Web" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.0.3.1" newVersion="4.0.3.1" /> </dependentAssembly> </assemblyBinding>