Apache Solr VEX
← Back to the dependency CVE table
Description
When parsing unknown fields in the Protobuf Java Lite and Full library, a maliciously crafted message can cause a StackOverflow error and lead to a program crash.
References
Description
CVE-2024-51504 is not considered exploitable in typical production deployments of Apache Solr.
Successful exploitation requires a very specific and non-standard configuration.
The following conditions must all be met:
- Solr must be deployed in SolrCloud mode, which relies on ZooKeeper for coordination.
- The embedded ZooKeeper server must be in use: a setup that is explicitly discouraged for production.
Solr emits a warning when this configuration is detected, and it is not commonly used outside of development or experimentation.
- The ZooKeeper Admin Server must be manually enabled in the ZooKeeper configuration file (
server/solr/zoo.cfg).
By default, this feature is disabled:
# Disable ZK AdminServer since we do not use it
admin.enableServer=false
Because these conditions are highly unlikely in secure, production-grade environments,
the Solr community considers this vulnerability non-exploitable under standard operating conditions.
References
Description
Solr does not use the Jetty "HttpURI" utility class necessary for the vulnerability.
References
Description
Core creation allows users to replace "trusted" configset files with arbitrary configuration
Solr instances are vulnerable if they:
- use the
FileSystemConfigSetService component (the default in "standalone" or "user-managed" mode), and
- run without authentication and authorization enabled
In this configuration, attackers can exploit a privilege escalation issue by replacing individual "trusted" configset files with potentially untrusted files from elsewhere on the filesystem.
These replacements are incorrectly treated as "trusted" and can leverage <lib> tags to add arbitrary code to Solr's classpath, potentially allowing malicious plugins or components to be loaded.
This issue affects all Apache Solr versions up through Solr 9.7.
Mitigation
Users can protect against the vulnerability by enabling authentication and authorization on their Solr clusters or switching to SolrCloud (and away from "FileSystemConfigSetService").
Users are also recommended to upgrade to Solr 9.8.0, which mitigates this issue by disabling use of "" tags by default.
Credit
pwn null (reporter)
References
Description
The only places we use json-path is for querying (via Calcite) and for transforming/indexing custom JSON. Since the advisory describes a problem that is limited to the current thread, and users that are allowed to query/transform/index are already trusted to cause load to some extent, this advisory does not appear to have impact on the way json-path is used in Solr.
References
Description
Solr does not ship a Struts jar. This is a transitive POM listing and not included with Solr (see comment in SOLR-2849).
References
Description
All Tika issues that could be Solr vulnerabilities would only be exploitable if untrusted files are indexed with SolrCell. This is not recommended in production systems, so Solr does not consider these valid CVEs for Solr.
References
Description
Solr uses commons-text directly (StringEscapeUtils.escapeEcmaScript) in LoadAdminUiServlet that is not vulnerable. Solr also has a "hadoop-auth" module that uses Apache Hadoop which uses commons-text through commons-configuration2. For Solr, the concern is limited to loading Hadoop configuration files that would only ever be provided by trusted administrators, not externally (untrusted).
References
Description
Apache Calcite has a vulnerability, CVE-2022-39135, that is exploitable in Apache Solr in SolrCloud mode. If an untrusted user can supply SQL queries to Solr's '/sql' handler (even indirectly via proxies / other apps), then the user could perform an XML External Entity (XXE) attack. This might have been exposed by some deployers of Solr in order for internal analysts to use JDBC based tooling, but would have unlikely been granted to wider audiences.
References
Description
Solr uses commons-configuration2 for "hadoop-auth" only (for Kerberos). It is only used for loading Hadoop configuration files that would only ever be provided by trusted administrators, not externally (untrusted).
References
Description
The vulnerable code won't be used by Solr because Solr only is only using HDFS as a client.
References
Description
The MDC data used by Solr are for the collection, shard, replica, core and node names, and a potential trace id, which are all sanitized. Furthermore, Solr's default log configuration doesn't use double-dollar-sign and we don't imagine a user would want to do that.
References
Description
Solr's default log configuration doesn't use JDBCAppender and we don't imagine a user would want to use it or other obscure appenders.
References
Description
JDOM is only used in Solr Cell, which should not be used in production which makes the vulnerability unexploitable. It is a dependency of Apache Tika, which has analyzed the issue and determined the vulnerability is limited to two libraries not commonly used in search applications, see TIKA-3488 for details. Since Tika should be used outside of Solr, use a version of Tika which updates the affected libraries if concerned about exposure to this issue.
References
Description
Only exploitable if Solr's webapp directory is deployed as a symlink, which is not Solr's default.
References
Description
Only exploitable through use of Jetty's GzipHandler, which is only implemented in Embedded Solr Server.
References
Description
Solr's SQL adapter does not use the vulnerable class "HttpUtils". Calcite only used it to talk to Druid or Splunk.
References
Description
This is not included in Solr but is a dependency of ZooKeeper 3.5.5. The version was upgraded in ZooKeeper 3.5.6, included with Solr 8.3. The specific classes mentioned in the CVE are not used in Solr (nor in ZooKeeper as far as the Solr community can determine).
References
Description
Solr upgraded to Jetty 9.4.19 for the 8.2 release. Additionally, the path to exploit these vulnerabilities was fixed in 8.1 and 7.7.2. Earlier versions can manually patch their configurations as described in SOLR-13409.
References
Description
While commons-beanutils was removed in 7.5, it was added back in 8.0 in error and removed again in 8.3. The vulnerable class was not used in any Solr code path. This jar remains a dependency of both Velocity and hadoop-common, but Solr does not use it in our implementations.
References
Description
The reported CVE impacts org.slf4j.ext.EventData, which is not used in Solr.
References
Description
Dependency of Carrot2 and used during compilation, not at runtime (see SOLR-769. This .jar was replaced in Solr 8.3 and backported to 7.7.3 (see SOLR-13779).
References
Description
Solr does not run tika-server, so this is not a problem.
References
Description
Only used with the Carrot2 clustering engine.
References
Description
Only used in tests.
References
Description
Only used in Solr tests.
References
Description
JUnit only used in tests; CVE only refers to a Jenkins plugin not used by Solr.
References
Description
Does not impact Solr because Solr uses Hadoop as a client library.
References
Description
These CVEs, and most of the known jackson-databind CVEs since 2017, are all related to problematic 'gadgets' that could be exploited during deserialization of untrusted data. The Jackson developers described 4 conditions that must be met in order for a problematic gadget to be exploited. See https://medium.com/@cowtowncoder/on-jackson-cves-dont-panic-here-is-what-you-need-to-know-54cd0d6e8062. Solr's use of jackson-databind does not meet 1 of the 4 conditions described which makes these CVEs unexploitable. The specific condition that Solr does not meet is the 3rd one: 'Enable polymorphic type handling' Solr does not include any polymorphic type handling, and Solr does not configure jackson-databind de/serialization to expect or include class names in serialized JSON. Two CVEs, 2019-14540 & 2019-16335, are related to HikariConfig and HikariDataSource classes, neither of which are used in Solr's code base.
References
- CVE: CVE-2017-15095, CVE-2017-17485, CVE-2017-7525, CVE-2018-5968, CVE-2018-7489, CVE-2019-12086, CVE-2019-12384, CVE-2018-12814, CVE-2019-14379, CVE-2019-14439, CVE-2020-35490, CVE-2020-35491, CVE-2021-20190, CVE-2019-14540, CVE-2019-16335
Description
Issue applies only to the C++ release of ICU and not ICU4J, which is what Lucene uses. ICU4J is at v63.2 as of Lucene/Solr 7.6.0
References
Description
Solr should not be exposed outside a firewall where bad actors can send HTTP requests. These two CVEs specifically involve classes (SimpleXMLProvider and XmlRepresentation, respectively) that Solr does not use in any code path.
References
Description
See https://github.com/Gagravarr/VorbisJava/issues/30; reported CVEs are not related to OggVorbis at all.
References
Description
Dependency for Hadoop and Calcite. ??
References
Description
All of these issues apply to the C++ release of ICU and not ICU4J, which is what Lucene uses.
References
Description
This is only used at compile time and it cannot be used to attack Solr. Since it is generally unnecessary, the dependency has been removed as of 7.5.0. See SOLR-12617.
References
Description
Only used in test framework and at build time.
References
Description
Only used in Lucene Benchmarks and Solr tests.
References