Solr セキュリティニュース

セキュリティ問題の報告方法

スキャナーによって検出された公開済みのCVE

ソフトウェアスキャナーによって検出されたCVEは、定義上、既に公開情報です。つまり、Solr PMCと世界中の他のユーザーも、おそらく既にその問題を知っているということです。

検出されたCVEに対処するための前進策を見つけるために、最速の結果を得るための次のプロセスを提案します。

  1. CVEがSolrで悪用可能かどうかを確認するには、このページの下部をご覧ください。
  2. CVEがSolrで悪用不可能かどうかを確認するには、正式に公開された悪用不可能な脆弱性のリストを確認してください。
  3. Solrユーザーメーリングリストアーカイブを検索して、他に誰かがこの依存関係のCVEについて言及しているかどうかを確認してください。
  4. 誰も言及していない場合は、ユーザーメーリングリストに登録し、CVEに関する質問をメールで送信してください。

やって良いことと悪いこと

  • ライブラリのアップグレードの必要性については、ユーザーリストで議論してください。
  • CVE番号でJiraを検索して、既に対応しているかどうかを確認してください。
  • 特定の1つの依存関係のアップグレードを提案および議論するために、Jiraの課題と関連するプルリクエストを作成してください。
  • スキャンレポートを添付したり、スキャンの出力をJiraに貼り付けないでください(代わりにCVEへのリンクを貼ってください)。
  • 下記のセキュリティメールアドレスにスキャンレポートを送信しないでください。無視されます。
  • VEXを使用してこれらを自動化する方法を検討し、あなたの経験を共有してください。

Jiraの使用

Jiraは、具体的な開発変更について議論するためのものです。スキャンレポート出力のみを含むJira、または同時に複数の依存関係を参照するJiraは、無視/クローズされる可能性があります。既に知られていることの報告を送信する人が非常に多いため、ボランティアの私たちの時間を大幅に浪費しています。そのため、新しい課題を開く前に、必ずJiraを検索してください

Solrで発見した新しい脆弱性あなたが発見した新しい脆弱性

Solr PMCは、Solr自体で見つかった新しいセキュリティ上の脆弱性に関する報告、または依存関係を介した脆弱性の悪用を実証する報告を非常に感謝しています。これまで知られていなかった脆弱性や、脆弱性の悪用を示すコードを公開メーリングリストに公開しないようにしてください。新しい脆弱性については、報告する際にASFガイドラインに従って責任を持って開示してください。Solrで新しく発見された脆弱性を報告するための連絡先メールアドレスはsecurity@solr.apache.orgです。

新しい脆弱性を報告する前に、サポートされているバージョンを実行していて、適切に構成されているSolrのインスタンスに対してテストしたことを確認してください。

  1. 認証 - ログインなしで実証された脆弱性は、Solrは全世界がすべてのAPIにアクセスできるようにして実行することを意図していないため、私たちの時間を無駄にします。ユーザーにログインを強制せずに実行することは、既知のデフォルトのルートパスワードでLinuxを実行すること、またはパスワードのないルートアカウントを持つデータベースを実行することと同じくらい無効です。
  2. 認可 - 認証されたユーザーが、そのアクションを禁止する役割に構成されていた場合、または役割に関係なく、いかなるユーザーに対してもそのアクションを許可してはならない場合にのみ、脆弱性となります。あなたの報告書には、なぜこのアクションがテストした役割で許容できないと考えるのかを記載する必要があります。

VEX

Solrの依存関係にあるCVEがあなたのSolr展開に影響するかどうかを確認するプロセスは、面倒でエラーが発生しやすいので、Solrに影響する(しない)ことがわかっているアドバイザリに関する情報を、機械可読な方法で共有する実験を行っています。

この情報を共有するためのファイル形式は「VEX」形式と呼ばれています。CycloneDXCSAFに基づくなど、多数のそのような形式が開発中です。

現在、CycloneDX JSONベースの形式で脆弱性情報をこちらで提供しています。あなたの経験について、そして、信号対雑音比を削減し、これらのツールをより効果的にするために何が不足しているかを知りたいと思っています。security-discussメーリングリストで議論に参加するか、プライベートで協力したい場合は、security@apache.orgまでご連絡ください。使用しているセキュリティスキャン/レポートツール、正確にはどのアーティファクトで、そのベンダーがVEXをサポートしているかどうか/どのようにサポートしているかを知ることは、おそらく興味深いでしょう。他のバリエーションや形式でこの情報を提供できるかどうかを検討するために、喜んで協力させていただきます。

詳細情報

セキュリティ関連の詳細情報については、Wikiをご覧ください:https://cwiki.apache.org/confluence/display/SOLR/SolrSecurity

Apache Solrに関する最近のCVEレポート

以下は、既に発表されているCVEの脆弱性のリストです。これらはATOMフィードとしても利用できます。

CVE番号 日付 発表
CVE-2024-31391 2024-04-12 Solr-Operatorの存続可能性と準備状況プローブが基本認証の資格情報を漏洩する可能性があります
CVE-2023-50291 2024-02-08 Apache Solrは、システムプロパティの改行ロジックの不整合により、特定のパスワードを漏洩する可能性があります
CVE-2023-50292 2024-02-08 Apache Solr Schema Designerはすべてのconfigsetを盲目的に「信頼」するため、認証されていないユーザーによるRCEにつながる可能性があります
CVE-2023-50298 2024-02-08 Apache Solrは、Streaming Expressionsを介してZooKeeperの資格情報を公開する可能性があります
CVE-2023-50386 2024-02-08 Apache Solr:バックアップ/リストアAPIにより、悪意のあるConfigSetに実行可能ファイルが配置される可能性があります
CVE-2023-50290 2024-01-12 Apache Solrは、ホスト環境変数への読み取りアクセスを許可します
CVE-2022-39135 2022-11-20 Apache Solrは、/sqlハンドラーを介してCVE-2022-39135の脆弱性があります
CVE-2021-44548 2021-12-18 DataImportHandlerを介したApache Solrの情報漏洩の脆弱性
CVE-2021-44228 2021-12-10 Apache Log4J CVE-2021-44228の影響を受けるApache Solr
CVE-2021-27905 2021-04-12 レプリケーションハンドラーを使用したSSRFの脆弱性
CVE-2021-29262 2021-04-12 Zookeeper ACLの誤った適用により、構成された認証と認可の設定が漏洩する可能性があります
CVE-2021-29943 2021-04-12 Apache Solr 特権のないユーザーがコレクションに対して不正な読み取り/書き込みを実行できる可能性があります
CVE-2020-13957 2020-10-12 Apache Solrに追加された認証されていないconfigsetアップロードのチェックを回避できます
CVE-2020-13941 2020-08-14 Apache Solrの情報漏洩の脆弱性
CVE-2019-17558 2019-12-30 VelocityResponseWriterを介したApache Solr RCE

2024-04-12、CVE-2024-31391:Solr-Operatorの存続可能性と準備状況プローブが基本認証の資格情報を漏洩する可能性があります

深刻度
中程度

影響を受けるバージョン
Solr Operator 0.3.0~0.8.0

説明:Apache Solr Operatorにおけるログファイルへの機密情報の挿入の脆弱性。

SolrのセキュリティをブートストラップするためのSolr skedでは、オペレーターは基本認証を有効にし、Solrへのアクセスのためのいくつかのアカウントを作成します。これには、エンドユーザーが使用する「solr」と「admin」アカウント、およびオペレーターがSolrへの独自の要求に使用する「k8s-oper」アカウントが含まれます。これらのオペレーター要求の一般的なソースの1つはヘルスチェックです。存続可能性、準備状況、および起動プローブはすべて、Solrのヘルスとトラフィックを受信する能力を判断するために使用されます。デフォルトでは、オペレーターはこれらのプローブに使用されるSolr APIを認証から除外するように構成しますが、ユーザーはプローブエンドポイントでも認証が必要になるように明示的に要求できます。これらのプローブのいずれかが失敗した場合、認証が使用されている場合、Solr Operatorは「k8s-oper」アカウントのユーザー名とパスワードを含むKubernetes「イベント」を作成します。

影響を受けるバージョンの範囲内では、この脆弱性は、(1) `.solrOptions.security.authenticationType=basic` オプションを使用してセキュリティをブートストラップし、(2) `.solrOptions.security.probesRequireAuth=true` を設定することでプローブに認証が必要になるように設定されたすべてのsolrcloudリソースに影響します。

軽減策:この問題を修正するSolr Operatorバージョン0.8.1にアップグレードすることをお勧めします。これにより、プローブがSolr要求に使用される資格情報を印刷しなくなります。ユーザーは、`.solrOptions.security.probesRequireAuth=false` 設定を使用してヘルスチェックプローブの認証を無効にすることによっても、脆弱性を軽減できます。

参照
JIRA - SOLR-17216
CVE - CVE-2024-31391


2024-02-08、CVE-2023-50291:Apache Solrは、システムプロパティの改行ロジックの不整合により、特定のパスワードを漏洩する可能性があります

深刻度
中程度

影響を受けるバージョン

  • Apache Solr 6.0.0~8.11.2
  • Apache Solr 9.0.0 9.3.0未満

説明
Apache Solrにおける不十分に保護された資格情報の脆弱性。

この問題は、Apache Solr:6.0.0~8.11.2、9.0.0~9.3.0未満に影響します。SolrプロセスのJavaシステムプロパティを公開する2つのエンドポイントの1つである/admin/info/propertiesは、名前の中に「password」が含まれているシステムプロパティのみを隠すように設定されていました。「password」を含まない多くの機密性の高いシステムプロパティ(「basicauth」や「aws.secretKey」など)があり、そのため、それらの値は「/admin/info/properties」エンドポイントを介して公開されていました。このエンドポイントは、Solr Adminページのホームページにシステムプロパティのリストを設定し、公開された資格情報をUIに表示します。

この/admin/info/propertiesエンドポイントは、「config-read」権限で保護されています。したがって、認可が有効になっているSolr Cloudは、「config-read」権限を持つログインユーザーを介してのみ脆弱になります。バージョン9.3.0または8.11.3にアップグレードすることをお勧めします。これにより、問題は修正されます。1つのオプションで、すべてのエンドポイントのJavaシステムプロパティの非表示を制御するようになりました。「-Dsolr.hiddenSysProps」。デフォルトでは、既知の機密性の高いプロパティ(「-Dbasicauth」を含む)と、「secret」または「password」を含む名前のプロパティがすべて非表示になります。

アップグレードできないユーザーは、次のJavaシステムプロパティを使用して問題を修正することもできます。
-Dsolr.redaction.system.pattern=".*(password|secret|basicauth).*"

軽減策
一貫性のあるsystemPropertyの改行ロジックが適用されているバージョン8.11.3、9.3.0以降にアップグレードすることをお勧めします。

クレジット:Michael Taggart(報告者)

参照
JIRA - SOLR-16809
CVE - CVE-2023-50291


2024-02-08、CVE-2023-50292:Apache Solr Schema Designerはすべてのconfigsetを盲目的に「信頼」するため、認証されていないユーザーによるRCEにつながる可能性があります

深刻度
中程度

影響を受けるバージョン

  • Apache Solr 6.0.0~8.11.2
  • Apache Solr 9.0.0 9.3.0未満

説明
Apache Solrにおける重要なリソースに対する権限の割り当てが間違っている、動的に管理されるコードリソースの制御が不適切な脆弱性。

この問題は、Apache Solr:8.10.0~8.11.2、9.0.0~9.3.0未満に影響します。

Schema Designerは、ユーザーが新しいスキーマとconfigSetをより簡単に構成およびテストできるようにするために導入されました。しかし、この機能が作成されたとき、これらのconfigSetの「信頼」(認証)は考慮されていませんでした。外部ライブラリの読み込みは、「信頼済み」(認証済みユーザーによって作成された)configSetでのみ利用可能であるため、認証されていないユーザーはリモートコード実行を実行できません。Schema DesignerはconfigSetの「信頼」を考慮せずに読み込んだため、認証されていないユーザーによって作成されたconfigSetは、Schema Designerで使用されたときに外部ライブラリを読み込むことができました。

軽減策
バージョン8.11.3、9.3.0以降にアップグレードすることをお勧めします。

クレジット:Skay(報告者)

参照
JIRA - SOLR-16777
CVE - CVE-2023-50292


2024-02-08、CVE-2023-50298:Apache Solrは、Streaming Expressionsを介してZooKeeperの資格情報を公開する可能性があります

深刻度

影響を受けるバージョン

  • Apache Solr 6.0.0~8.11.2
  • Apache Solr 9.0.0 9.4.1未満

説明
Apache Solrにおける、権限のない実行者に対する機密情報の公開の脆弱性。この問題は、Apache Solr:6.0.0~8.11.2、9.0.0~9.4.1未満に影響します。

Solrストリーミング式は、「zkHost」パラメータを使用して、他のSolrクラウドからデータ抽出を可能にします。元のSolrCloudがZooKeeperの認証情報とACLを使用するように設定されている場合、それらはユーザーが指定する「zkHost」に送信されます。攻撃者は、認証情報とACLを含むZooKeeperリクエストを受け入れ、機密情報を抽出するZooKeeperを模倣するサーバーを設定し、「zkHost」に模倣サーバーのアドレスを使用してストリーミング式を送信する可能性があります。ストリーミング式は、「read」権限を持つ「/streaming」ハンドラを介して公開されています。

軽減策
この問題を修正するバージョン8.11.3または9.4.1へのアップグレードを推奨します。これらのバージョン以降は、(chrootに関係なく)同じサーバーアドレスを持つzkHost値のみが、接続時に指定されたZooKeeperの認証情報とACLを使用します。

報告者: Qing Xu

参照
JIRA - SOLR-17098
CVE - CVE-2023-50298


2024年2月8日、CVE-2023-50386: Apache Solr: バックアップ/復元APIが悪意のあるConfigSetで実行可能ファイルの展開を許可

深刻度
中程度

影響を受けるバージョン

  • Apache Solr 6.0.0~8.11.2
  • Apache Solr 9.0.0 9.4.1未満

説明
Apache Solrにおける動的に管理されるコードリソースの制御不備、危険な種類のファイルの無制限アップロード、信頼できない制御範囲からの機能の包含の脆弱性。この問題は、Apache Solr 6.0.0~8.11.2、9.0.0~9.4.1より前のバージョンに影響します。

影響を受けるバージョンでは、Solr ConfigSetはConfigSet APIを介してJava jarファイルとクラスファイルのアップロードを受け入れていました。Solrコレクションのバックアップ時に、LocalFileSystemRepository(バックアップのデフォルト)を使用すると、これらのconfigSetファイルがディスクに保存されます。バックアップがSolrがClassPath/ClassLoaderで使用しているディレクトリに保存された場合、jarファイルとクラスファイルは、信頼できるかどうかに関係なく、すべてのConfigSetで使用できるようになります。

Solrが(強く推奨されているように)安全な方法(認証が有効)で実行されている場合、この脆弱性は、ライブラリの追加機能を持つバックアップ権限の拡張に限定されます。

軽減策
この問題を修正するバージョン8.11.3または9.4.1へのアップグレードを推奨します。これらのバージョンでは、以下の保護機能が追加されています。

  • ユーザーは、Java ClassLoaderを介して実行できるconfigSetにファイルをアップロードできなくなりました。
  • バックアップAPIは、ClassLoaderで使用されているディレクトリへのバックアップの保存を制限します。

報告者: L3yx

参照
JIRA - SOLR-16949
CVE - CVE-2023-50386


2024年1月12日、CVE-2023-50290: Apache Solrはホスト環境変数への読み取りアクセスを許可

深刻度
重要

影響を受けるバージョン
Solr 9.0~9.2.1

説明
Apache Solrにおける、不正なアクタへの機密情報の漏洩の脆弱性。Solr Metrics APIは、各Apache Solrインスタンスで使用可能なすべての保護されていない環境変数を公開します。ユーザーは非表示にする環境変数を指定できますが、デフォルトのリストは既知の秘密のJavaシステムプロパティで動作するように設計されています。環境変数は、JavaシステムプロパティのようにSolrで厳密に定義することはできず、JavaシステムプロパティはJavaプロセスごとに設定されるのに対し、ホスト全体に対して設定される場合があります。

Solr Metrics APIは「metrics-read」権限によって保護されています。したがって、認証が設定されたSolrクラウドは、「metrics-read」権限を持つユーザーを介してのみ脆弱性になります。

軽減策
環境変数がMetrics APIを介して公開されないバージョン9.3.0以降へのアップグレードを推奨します。

参照
JIRA - SOLR-15233
CVE - CVE-2023-50290


2022年11月20日、Apache Solrは/sqlハンドラを介してCVE-2022-39135の影響を受けます

影響を受けるバージョン
Solr 6.5~8.11.2、Solr 9.0

説明
Apache Calciteには、SolrCloudモードのApache Solrで悪用可能な脆弱性CVE-2022-39135があります。信頼できないユーザーがSolrの「/sql」ハンドラにSQLクエリを供給できる場合(プロキシ/その他のアプリを介して間接的にでも)、ユーザーはXML外部エンティティ(XXE)攻撃を実行できます。これは、内部アナリストがJDBCベースのツールを使用できるようにSolrを展開した一部のデプロイヤーによって公開されていた可能性がありますが、より広い範囲のオーディエンスに許可されることはほとんどなかったでしょう。

影響
XXE攻撃により、機密データの漏洩、サービス拒否、サーバーサイドリクエストフォージェリ(SSRF)、Solrノードからのポートスキャン、およびその他のシステムへの影響が発生する可能性があります。

軽減策
ほとんどのSolrインストールでは、SQL機能は使用されていません。そのようなユーザーにとって、ファイアウォールを使用するという標準的なSolrセキュリティアドバイスで十分です。それにもかかわらず、機能を無効にすることができます。Solr 9以降、モジュール化されているためオプトインになったため、使用していないSolr 9ユーザーには何も必要ありません。SolrCloudを使用していないユーザーは、この機能をまったく使用できません。無効にしたい他のユーザーは、solrconfig.xmlで基になる機能をマスクするリクエストハンドラを次のように登録する必要があります。

  <requestHandler name="/sql" class="solr.NotFoundRequestHandler"/>

このSQL機能を必要とするユーザーは、Solr 9.1にアップグレードする必要があります。Solr 8.11.3がリリースされた場合は、それも選択肢になります。Calciteやその他のJARファイルを単純に置き換えることで大部分は機能する可能性がありますが、クエリの詳細によっては失敗する可能性があります。これに関心のあるユーザー、または独自のSolrバージョンをパッチするユーザーは、ソースパッチについてSOLR-16421を参照してください。

報告者
CoreMedia GmbHのAndreas Hubold

参照
JIRA - SOLR-16421
CVE - CVE-2022-39135


2021年12月18日、CVE-2021-44548: DataImportHandlerを介したApache Solrの情報漏洩の脆弱性

深刻度
中程度

影響を受けるバージョン
8.11.1より前のすべてのバージョン。影響を受けるプラットフォーム:Windows。

説明
Apache SolrのDataImportHandlerにおける不適切な入力検証の脆弱性により、攻撃者はWindows UNCパスを提供して、Solrホストからネットワーク上の別のホストへのSMBネットワーク呼び出しが行われるようにすることができます。攻撃者がネットワークへのより広範なアクセス権を持っている場合、これはSMB攻撃につながる可能性があり、その結果、

  • OSユーザーハッシュ(NTLM/LMハッシュ)などの機密データの流出、
  • システムの誤構成の場合、SMBリレー攻撃により、SMB共有でのユーザーになりすましたり、最悪の場合、リモートコード実行につながる可能性があります。

この問題は、8.11.1より前のすべてのApache Solrバージョンに影響します。この問題はWindowsのみに影響します。

軽減策
Solr 8.11.1にアップグレードするか、信頼できるクライアントのみがSolrのDataImportハンドラへのリクエストを行うことができるようにしてください。

報告者
Apache Solrは、この問題を報告してくれたNsfocusセキュリティチームのLaiHanに感謝します。

参照
Jira issue SOLR-15826


2021年12月10日、Apache Log4J CVE-2021-44228の影響を受けたApache Solr

重大度: クリティカル

影響を受けるバージョン: 7.4.0~7.7.3、8.0.0~8.11.0

説明: 8.11.1より前のApache Solrリリースでは、RCEに対して脆弱なApache Log4Jライブラリのバンドルバージョンを使用していました。完全な影響と詳細については、Log4Jセキュリティページを参照してください。

7.4より前のApache Solrリリース(つまり、Solr 5、Solr 6、およびSolr 7~7.3)はLog4J 1.2.17を使用しており、JMS Appenderを含むデフォルト以外のログ構成を使用するインストールでは脆弱になる可能性があります。https://github.com/apache/logging-log4j2/pull/608#issuecomment-990494126で議論を参照してください。

SolrのプロメテウスエクスポーターもLog4Jを使用しますが、ユーザー入力やデータはログに記録しないため、リスクは見られません。

Solrは、後続のCVE-2021-45046およびCVE-2021-45105に対しては脆弱ではありません。これらのCVEとその他のCVEのリスト、およびいくつかの理由については、Solrのwikiを参照してください。https://cwiki.apache.org/confluence/display/SOLR/SolrSecurity#SolrSecurity-SolrandVulnerabilityScanningTools

軽減策: 以下のいずれかの方法で、Solrサーバーのこの脆弱性を防ぐことができます。

  • Solr 8.11.1以降(利用可能な場合)にアップグレードします。これには、更新されたバージョンのLog4J依存関係(>= 2.16.0)が含まれます。
  • Solrの公式Dockerイメージを使用している場合、Docker Hubでサポートされているバージョンでは既に軽減されています。https://hub.docker.com/_/solr。イメージを再度プルする必要がある場合があります。
  • ランタイムクラスパス上のLog4Jのバージョンを手動で更新し、Solrアプリケーションを再起動します。
  • (Linux/MacOS) solr.in.shファイルを編集して、次を含めます: SOLR_OPTS="$SOLR_OPTS -Dlog4j2.formatMsgNoLookups=true"
  • (Windows) solr.in.cmdファイルを編集して、次を含めます: set SOLR_OPTS=%SOLR_OPTS% -Dlog4j2.formatMsgNoLookups=true
  • https://logging.apache.org/log4j/2.x/security.htmlにリストされている他の軽減策に従ってください。

Log4Jセキュリティページでは、log4j2.formatMsgNoLookups=trueの設定は「信用できない」軽減策として言及されています。実際には、状況によります。根本原因を調査し、脆弱性につながるコードパスを監査した結果、この軽減策がSolrに対して十分であると確信しています。https://lists.apache.org/thread/kgh63sncrsm2bls884pg87mnt8vqztmzで議論を参照してください。

参照: https://logging.apache.org/log4j/2.x/security.html


2021年4月12日、CVE-2021-27905: レプリケーションハンドラによるSSRF脆弱性

重大度:

影響を受けるバージョン: 7.0.0~7.7.3、8.0.0~8.8.1

説明: (通常、Solrコアの「/replication」に登録される)ReplicationHandlerには、「masterUrl」(「leaderUrl」エイリアスも)パラメータがあり、別のSolrコアの別のReplicationHandlerを指定して、インデックスデータをローカルコアにレプリケートするために使用されます。SSRF脆弱性を防ぐために、Solrはこれらのパラメータを「shards」パラメータで使用している同様の構成と照合する必要があります。このバグが修正される前は、そうではありませんでした。

軽減策: 以下のいずれかの方法で、この脆弱性を防ぐことができます。

  • Solr 8.8.2以降にアップグレードします。
  • アップグレードが不可能な場合は、SOLR-15217のパッチを適用することを検討してください。
  • レプリケーションハンドラへのアクセスがSolrの内部に限定されていることを確認してください。通常、外部からアクセスされるのは、診断/情報目的のみです。

報告者: QI-ANXIN Cert(QI-ANXIN Technology Group Inc.)のCaolinhong(Skay)

参照: SOLR-15217: CVE-2021-27905: レプリケーションハンドラーにおけるSSRF脆弱性


2021年4月12日、CVE-2021-29262: ZooKeeper ACLの誤適用により、設定された認証および承認設定の漏洩が発生する可能性があります

重大度:

影響を受けるバージョン: 7.0.0~7.7.3、8.0.0~8.8.1

説明: SaslZkACLProviderまたはVMParamsAllAndReadonlyDigestZkACLProviderで構成され、既存のsecurity.json znodeが存在せず、オプションの読み取り専用ユーザーが構成されている場合、Apache Solr 8.8.2より前のバージョンでは、Solrはそのノードを機密パスとして扱わず、読み取りを許可していました。さらに、任意のZkACLProviderを使用する場合、security.jsonが既に存在する場合、SolrはACLを自動的に更新しません。

軽減策: 以下のいずれかの方法で、この脆弱性を防ぐことができます。

  • /security.json znodeに適切なACLを手動で設定してください。
  • Solr 8.8.2以降にアップグレードします。
  • アップグレードが不可能な場合は、SOLR-15249のパッチを適用することを検討してください。
  • ZooKeeperへのアクセスは、信頼できるアプリケーションからのみ許可するようにしてください。

謝辞: Timothy PotterおよびMike Drob、Apple Cloud Services

参照: SOLR-15249: CVE-2021-29262: ZooKeeper ACLの誤適用により、設定された認証および承認設定の漏洩が発生する可能性があります


2021年4月12日、CVE-2021-29943: Apache Solrにおいて、権限のないユーザーがコレクションに対して不正な読み書きを実行できる可能性があります

重大度:

影響を受けるバージョン: 7.0.0~7.7.3、8.0.0~8.8.1

説明: 認証にConfigurableInternodeAuthHadoopPluginを使用する場合、Apache Solr 8.8.2より前のバージョンでは、元のクライアント資格情報ではなく、サーバー資格情報を使用して分散リクエストを転送/プロキシしていました。これにより、受信ホストでの承認解決が不正確になります。

軽減策: 以下のいずれかの方法で、この脆弱性を防ぐことができます。

  • Solr 8.8.2以降にアップグレードします。
  • アップグレードが不可能な場合は、SOLR-15233のパッチを適用することを検討してください。
  • KerberosPluginまたはHadoopAuthPluginなどの別の認証プラグインを使用してください。

謝辞: Geza Nagy

参照: SOLR-15233: CVE-2021-29943: Apache Solrにおいて、権限のないユーザーがコレクションに対して不正な読み書きを実行できる可能性があります


2020年10月12日、CVE-2020-13957: Apache Solrにおいて、認証されていないConfigSetアップロードに追加されたチェックを回避できる可能性があります

重大度:

影響を受けるバージョン: 6.6.0~6.6.6、7.0.0~7.7.3、8.0.0~8.6.2

説明: Solrは、認証/承認なしでAPI経由でアップロードされたConfigSetで、危険と見なされる一部の機能(リモートコード実行に使用される可能性がある機能)の設定を防止します。このような機能を防止するためのチェックは、UPLOAD/CREATEアクションの組み合わせを使用することで回避できます。

軽減策: 以下のいずれかの方法で、この脆弱性を防ぐことができます。

  • システムプロパティconfigset.upload.enabledfalseに設定して、使用していない場合はConfigSets APIでUPLOADコマンドを無効にしてください(ドキュメントを参照)。
  • 認証/承認を使用し、不明なリクエストが許可されないようにしてください(ドキュメントを参照)。
  • Solr 8.6.3以降にアップグレードしてください。
  • アップグレードが不可能な場合は、SOLR-14663のパッチを適用することを検討してください。
  • Admin UIを含むSolr APIは、信頼されていない当事者に対して公開されるように設計されていません。ファイアウォールを調整して、信頼できるコンピューターとユーザーのみがアクセスできるようにしてください。

謝辞: Tomás Fernández Löbbe、András Salamon

参照: SOLR-14925: CVE-2020-13957: 認証されていないConfigSetアップロードに追加されたチェックを回避できる可能性があります


2020年8月14日、CVE-2020-13941: Apache Solr情報漏洩の脆弱性

深刻度:

影響を受けるバージョン
Solr 8.6より前。一部のリスクはWindows固有です。

説明: SOLR-14515(非公開)で報告され、Solrバージョン8.6.0でリリースされたSOLR-14561(公開)で修正されました。レプリケーションハンドラー(https://solr.dokyumento.jp/guide/8_6/index-replication.html#http-api-commands-for-the-replicationhandler)は、backup、restore、deleteBackupコマンドを許可します。これらはそれぞれlocationパラメーターを受け取りますが、検証されていませんでした。つまり、Solrユーザーがアクセスできる任意の場所に読み書きできました。

Windowsシステムでは、\\10.0.0.99\\share\\folderなどのSMBパスも使用できる可能性があり、次のことが考えられます。

  • ネットワーク上のサーバー(またはマウントされたリモートファイルシステム)から別のSolrCoreを復元できる可能性があります。
    • 攻撃者がアクセスできないはずの検索インデックスデータが公開される可能性があります。
    • 攻撃者が制御するリモートファイルシステムからロードすることで、インデックスデータを完全に置き換える可能性があります。
  • SMB攻撃が発生する可能性があり、次のことが考えられます。
    • OSユーザーハッシュ(NTLM/LMハッシュ)などの機密データの流出、
    • システムの誤構成の場合、SMBリレー攻撃により、SMB共有でのユーザーになりすましたり、最悪の場合、リモートコード実行につながる可能性があります。

軽減策: Solr 8.6にアップグレードするか、信頼できるクライアントのみがSolrのレプリケーションハンドラーのリクエストを実行できるようにしてください。

謝辞: Matei "Mal" Badanoiu


2019年12月30日、CVE-2019-17558: VelocityResponseWriterによるApache Solr RCE

重大度:

ベンダー
Apache Software Foundation

影響を受けるバージョン: 5.0.0~8.3.1

説明
影響を受けるバージョンは、VelocityResponseWriterを介したリモートコード実行の脆弱性があります。Velocityテンプレートは、configsetの`velocity/`ディレクトリ内のVelocityテンプレート、またはパラメーターとして提供できます。ユーザー定義のconfigsetには、レンダリング可能な、悪意のある可能性のあるテンプレートが含まれている可能性があります。パラメーターで提供されたテンプレートはデフォルトで無効になっていますが、`params.resource.loader.enabled`を設定することで有効にできます。その設定が`true`に設定されたレスポンスライターを定義することで設定できます。レスポンスライターを定義するには、構成APIへのアクセスが必要です。

Solr 8.4では、paramsリソースローダーが完全に削除され、configsetが「信頼済み」(認証済みユーザーによってアップロードされた)の場合にのみ、configsetで提供されるテンプレートレンダリングが有効になります。

軽減策
特に構成APIに対して、信頼できるトラフィックのみがSolrと通信するようにネットワーク設定を構成してください。

報告者
Githubユーザー`s00py`

参照


Apache Solr依存関係のCVEレポート

以下は、Apache Solr依存関係のCVE脆弱性とそのSolrへの適用可能性の状態のリストです。

現在、この情報をマシン可読VEX形式で提供する実験を行っており、皆様のご参加をお待ちしております。

ID バージョン JARファイル 状態 詳細
CVE-2022-33980 < 9.1 commons-configuration2-2.7.jar 影響なし Solrは"hadoop-auth"(Kerberos用)のみにcommons-configuration2を使用しています。これは、信頼できる管理者のみが提供するHadoop構成ファイルの読み込みのみに使用され、外部(信頼できない)からは提供されません。
CVE-2022-42889 < 9.1 commons-text-1.9.jar 影響なし SolrはLoadAdminUiServletでcommons-textを直接使用していますが(StringEscapeUtils.escapeEcmaScript)、脆弱ではありません。Solrには、commons-configuration2を介してcommons-textを使用するApache Hadoopを使用する"hadoop-auth"モジュールもあります。Solrの場合、懸念事項は、信頼できる管理者のみが提供するHadoop構成ファイルの読み込みに限定され、外部(信頼できない)からは提供されません。
CVE-2022-25168 < 9.1 hadoop-common-3.2.2.jar 影響なし SolrはHDFSをクライアントとしてのみ使用しているため、脆弱なコードは使用されません。
CVE-2021-44832 7.4-8.11.1 log4j-core-2.14.1.jar、log4j-core-2.16.0.jar 影響なし Solrのデフォルトのログ設定ではJDBCAppenderは使用されておらず、ユーザーがそれを使用したり、その他の分かりにくいAppenderを使用したいとは考えられません。
CVE-2021-45105CVE-2021-45046 7.4-8.11.1 log4j-core-2.14.1.jar、log4j-core-2.16.0.jar 影響なし Solrで使用されるMDCデータは、コレクション、シャード、レプリカ、コア、ノード名、潜在的なトレースIDであり、すべてサニタイズされています。さらに、Solrのデフォルトのログ設定では二重ドル記号は使用されておらず、ユーザーがそうしたいとは考えられません。
CVE-2020-13955 8.1.0~現在 avatica-core-1.13.0.jar、calcite-core-1.18.0.jar 影響なし SolrのSQLアダプターは、脆弱なクラス"HttpUtils"を使用していません。CalciteはDruidまたはSplunkと通信するためにのみ使用していました。
CVE-2018-10237 5.4.0~現在 carrot2-guava-18.0.jar 影響なし Carrot2クラスタリングエンジンでのみ使用されます。
CVE-2014-0114 4.9.0-7.5.0 commons-beanutils-1.8.3.jar 影響なし これはコンパイル時にのみ使用され、Solrを攻撃するために使用することはできません。一般的に不要なため、7.5.0以降では依存関係が削除されました。SOLR-12617を参照してください。
CVE-2019-10086 8.0.0-8.3.0 commons-beanutils-1.9.3.jar 影響なし commons-beanutilsは7.5で削除されましたが、8.0で誤って追加され、8.3で再び削除されました。脆弱なクラスは、Solrのコードパスでは使用されていませんでした。このJARファイルはVelocityとhadoop-commonの両方の依存関係のままですが、Solrの実装では使用していません。
CVE-2012-2098CVE-2018-1324CVE-2018-11771 4.6.0~現在 commons-compress(Ant 1.8.2の一部のみ) 影響なし テストフレームワークとビルド時でのみ使用されます。
CVE-2018-1000632 4.6.0~現在 dom4j-1.6.1.jar 影響なし Solrのテストでのみ使用されます。
CVE-2018-10237 4.6.0~現在 guava-*.jar 影響なし テストでのみ使用されます。
CVE-2017-15718 6.6.1-7.6.0 hadoop-auth-2.7.4.jar、hadoop-hdfs-2.7.4.jar(すべてのHadoop) 影響なし SolrはHadoopをクライアントライブラリとして使用しているため、Solrには影響しません。
CVE-2017-14952 6.0.0-7.5.0 icu4j-56.1.jar、icu4j-59.1.jar 影響なし この問題は、ICUのC++リリースのみに適用され、Luceneが使用するICU4Jには適用されません。Lucene/Solr 7.6.0時点ではICU4Jはv63.2です。
CVE-2017-15095CVE-2017-17485CVE-2017-7525CVE-2018-5968CVE-2018-7489CVE-2019-12086CVE-2019-12384CVE-2018-12814CVE-2019-14379CVE-2019-14439CVE-2020-35490CVE-2020-35491CVE-2021-20190CVE-2019-14540CVE-2019-16335 4.7.0~現在 jackson-databind-*.jar 影響なし これらのCVE、および2017年以降に知られているjackson-databindのCVEの大部分は、信頼できないデータの逆シリアル化中に悪用される可能性のある問題のある「ガジェット」に関連しています。Jackson開発者は、問題のあるガジェットが悪用されるために満たす必要がある4つの条件を説明しました。https://medium.com/@cowtowncoder/on-jackson-cves-dont-panic-here-is-what-you-need-to-know-54cd0d6e8062を参照してください。Solrのjackson-databindの使用は、説明されている4つの条件の1つを満たしていないため、これらのCVEは悪用できません。Solrが満たしていない特定の条件は3番目の条件です。「ポリモーフィック型処理を有効にする」Solrにはポリモーフィック型処理が含まれておらず、Solrはjackson-databindの直列化/逆シリアル化で、シリアル化されたJSONにクラス名を含める、またはクラス名を期待するように設定されていません。2つのCVEである2019-14540と2019-16335は、HikariConfigクラスとHikariDataSourceクラスに関連していますが、いずれもSolrのコードベースで使用されていません。
CVE-2019-10241CVE-2019-10247 7.7.0-8.2 jetty-9.4.14 影響なし Solrは8.2リリースでJetty 9.4.19にアップグレードされました。さらに、これらの脆弱性を悪用するパスは8.1および7.7.2で修正されました。以前のバージョンは、SOLR-13409に記載されているように、手動で設定をパッチできます。
CVE-2020-27218 7.3.0-8.8.0 jetty-9.4.0~9.4.34 影響なし JettyのGzipHandlerを使用した場合にのみ悪用可能であり、これは組み込みSolrサーバーでのみ実装されています。
CVE-2020-27223 7.3.0以降 jetty-9.4.6~9.4.36 影響なし Solrのwebappディレクトリがシンボリックリンクとして展開されている場合にのみ悪用可能です。これはSolrのデフォルトではありません。
CVE-2021-33813 現在まで jdom-*.jar 影響なし JDOMはSolr Cellでのみ使用され、本番環境では使用しないでください。そのため、この脆弱性は悪用できません。これはApache Tikaの依存関係であり、Apache Tikaは問題を分析し、この脆弱性は検索アプリケーションで一般的に使用されない2つのライブラリに限定されていると判断しています。詳細については、TIKA-3488を参照してください。TikaはSolrの外で使用されるため、この問題へのエクスポージャーについて懸念がある場合は、影響を受けるライブラリを更新するバージョンのTikaを使用してください。
CVE-2018-1000056 4.6.0-7.6.0 junit-4.10.jar 影響なし JUnitはテストでのみ使用されます。CVEはSolrで使用されていないJenkinsプラグインのみを参照しています。
CVE-2014-7940CVE-2016-6293CVE-2016-7415CVE-2017-14952CVE-2017-17484CVE-2017-7867CVE-2017-7868 7.3.1 lucene-analyzers-icu-7.3.1.jar 影響なし これらの問題はすべて、ICUのC++リリースに適用され、Luceneが使用するICU4Jには適用されません。
CVE-2019-16869 8.2-8.3 netty-all-4.1.29.Final.jar 影響なし これはSolrには含まれていませんが、ZooKeeper 3.5.5の依存関係です。このバージョンはZooKeeper 3.5.6でアップグレードされ、Solr 8.3に含まれています。CVEで言及されている特定のクラスは、Solr(そしてSolrコミュニティが判断する限り、ZooKeeperでも)で使用されていません。
CVE-2017-14868CVE-2017-14949 5.2.0~現在 org.restlet-2.3.0.jar 影響なし 不正な行為者がHTTPリクエストを送信できるファイアウォールの外にSolrを公開しないでください。これらの2つのCVEは、特にSolrがどのコードパスでも使用していないクラス(それぞれSimpleXMLProviderとXmlRepresentation)に関係しています。
CVE-2015-5237 6.5.0~現在 protobuf-java-3.1.0.jar 影響なし HadoopとCalciteの依存関係。??
CVE-2018-1471 5.4.0-7.7.2, 8.0-8.3 simple-xml-2.7.1.jar 影響なし Carrot2の依存関係であり、コンパイル時に使用され、実行時には使用されません(SOLR-769を参照)。この.jarはSolr 8.3で置き換えられ、7.7.3にバックポートされました(SOLR-13779を参照)。
CVE-2018-8088 4.x~現在 slf4j-api-1.7.24.jar、jcl-over-slf4j-1.7.24.jar、jul-to-slf4j-1.7.24.jar 影響なし 報告されたCVEはorg.slf4j.ext.EventDataに影響しますが、これはSolrでは使用されていません。
CVE-2018-1335 7.3.1-7.5.0 tika-core.1.17.jar 影響なし Solrはtika-serverを実行しないため、これは問題ではありません。
CVE- 7.3.1~現在 tika-core.*.jar 影響なし Solrの脆弱性となる可能性のあるすべてのTikaの問題は、信頼できないファイルがSolr Cellでインデックス付けされている場合にのみ悪用可能です。これは本番システムでは推奨されないため、SolrはこれらをSolrの有効なCVEとは見なしていません。
CVE- 6.6.2~現在 velocity-tools-2.0.jar 影響なし SolrはStruts jarを提供しません。これは推移的なPOMリストであり、Solrには含まれていません(SOLR-2849のコメントを参照)。
CVE-2016-6809CVE-2018-1335CVE-2018-1338CVE-2018-1339 5.5.5、6.2.0~現在 vorbis-java-tika-0.8.jar 影響なし https://github.com/Gagravarr/VorbisJava/issues/30を参照してください。報告されたCVEはOggVorbisとはまったく関係ありません。
CVE-2012-0881 ~2.9~現在 xercesImpl-2.9.1.jar 影響なし Lucene BenchmarksとSolrテストでのみ使用されます。