Find, fix and prevent vulnerabilities in your code.
critical severity
- Vulnerable module: commons-fileupload:commons-fileupload
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › commons-fileupload:commons-fileupload@1.2.1Remediation: Upgrade to org.apache.solr:solr-core@7.3.1.
Overview
commons-fileupload:commons-fileupload
The Apache Commons FileUpload library contains a Java Object that, upon deserialization, can be manipulated to write or copy files in arbitrary locations. If integrated with ysoserial, it is possible to upload and execute binaries in a single deserialization call.
Details
Serialization is a process of converting an object into a sequence of bytes which can be persisted to a disk or database or can be sent through streams. The reverse process of creating object from sequence of bytes is called deserialization. Serialization is commonly used for communication (sharing objects between multiple hosts) and persistence (store the object state in a file or a database). It is an integral part of popular protocols like Remote Method Invocation (RMI), Java Management Extension (JMX), Java Messaging System (JMS), Action Message Format (AMF), Java Server Faces (JSF) ViewState, etc.
Deserialization of untrusted data (CWE-502), is when the application deserializes untrusted data without sufficiently verifying that the resulting data will be valid, letting the attacker to control the state or the flow of the execution.
Java deserialization issues have been known for years. However, interest in the issue intensified greatly in 2015, when classes that could be abused to achieve remote code execution were found in a popular library (Apache Commons Collection). These classes were used in zero-days affecting IBM WebSphere, Oracle WebLogic and many other products.
An attacker just needs to identify a piece of software that has both a vulnerable class on its path, and performs deserialization on untrusted data. Then all they need to do is send the payload into the deserializer, getting the command executed.
Developers put too much trust in Java Object Serialization. Some even de-serialize objects pre-authentication. When deserializing an Object in Java you typically cast it to an expected type, and therefore Java's strict type system will ensure you only get valid object trees. Unfortunately, by the time the type checking happens, platform code has already created and executed significant logic. So, before the final type is checked a lot of code is executed from the readObject() methods of various objects, all of which is out of the developer's control. By combining the readObject() methods of various classes which are available on the classpath of the vulnerable application an attacker can execute functions (including calling Runtime.exec() to execute local OS commands).
- Apache Blog
Remediation
Upgrade commons-fileupload to version 1.3.3 or higher.
References
critical severity
- Vulnerable module: log4j:log4j
- Introduced through: log4j:log4j@1.2.17, org.apache.solr:solr-solrj@4.8.0 and others
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › log4j:log4j@1.2.17
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-solrj@4.8.0 › log4j:log4j@1.2.17
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.slf4j:slf4j-log4j12@1.7.7 › log4j:log4j@1.2.17
Overview
log4j:log4j is a 1.x branch of the Apache Log4j project. Note: Log4j 1.x reached End of Life in 2015, and is no longer supported.
Affected versions of this package are vulnerable to Deserialization of Untrusted Data. Included in Log4j 1.2 is a SocketServer class that is vulnerable to deserialization of untrusted data which can be exploited to remotely execute arbitrary code when combined with a deserialization gadget when listening to untrusted network traffic for log data.
Details
Serialization is a process of converting an object into a sequence of bytes which can be persisted to a disk or database or can be sent through streams. The reverse process of creating object from sequence of bytes is called deserialization. Serialization is commonly used for communication (sharing objects between multiple hosts) and persistence (store the object state in a file or a database). It is an integral part of popular protocols like Remote Method Invocation (RMI), Java Management Extension (JMX), Java Messaging System (JMS), Action Message Format (AMF), Java Server Faces (JSF) ViewState, etc.
Deserialization of untrusted data (CWE-502), is when the application deserializes untrusted data without sufficiently verifying that the resulting data will be valid, letting the attacker to control the state or the flow of the execution.
Java deserialization issues have been known for years. However, interest in the issue intensified greatly in 2015, when classes that could be abused to achieve remote code execution were found in a popular library (Apache Commons Collection). These classes were used in zero-days affecting IBM WebSphere, Oracle WebLogic and many other products.
An attacker just needs to identify a piece of software that has both a vulnerable class on its path, and performs deserialization on untrusted data. Then all they need to do is send the payload into the deserializer, getting the command executed.
Developers put too much trust in Java Object Serialization. Some even de-serialize objects pre-authentication. When deserializing an Object in Java you typically cast it to an expected type, and therefore Java's strict type system will ensure you only get valid object trees. Unfortunately, by the time the type checking happens, platform code has already created and executed significant logic. So, before the final type is checked a lot of code is executed from the readObject() methods of various objects, all of which is out of the developer's control. By combining the readObject() methods of various classes which are available on the classpath of the vulnerable application, an attacker can execute functions (including calling Runtime.exec() to execute local OS commands).
Remediation
There is no fixed version for log4j:log4j.
References
critical severity
- Vulnerable module: org.apache.hadoop:hadoop-common
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › org.apache.hadoop:hadoop-common@2.2.0Remediation: Upgrade to org.apache.solr:solr-core@8.11.3.
Overview
org.apache.hadoop:hadoop-common is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models.
Affected versions of this package are vulnerable to Arbitrary Code Execution via the FileUtil.unTar() API due to improper escape of the input file name before it passed to the shell.
Note:
In vulnerable 3.3.x versions FileUtil.unTar() is used through InMemoryAliasMap.completeBootstrapTransfer, which is only ever run by a local user.
Remediation
Upgrade org.apache.hadoop:hadoop-common to version 2.10.2, 3.2.4, 3.3.3 or higher.
References
critical severity
- Vulnerable module: org.apache.hadoop:hadoop-common
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › org.apache.hadoop:hadoop-common@2.2.0Remediation: Upgrade to org.apache.solr:solr-core@8.11.3.
Overview
org.apache.hadoop:hadoop-common is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models.
Affected versions of this package are vulnerable to Arbitrary File Write via Archive Extraction (Zip Slip) in FileUtil where unpackEntries during TAR extraction follows symbolic links which allows writing outside the expected base directory on Windows. This is because getCanonicalPath doesn't resolve symbolic links on Windows.
Details
It is exploited using a specially crafted zip archive, that holds path traversal filenames. When exploited, a filename in a malicious archive is concatenated to the target extraction directory, which results in the final path ending up outside of the target folder. For instance, a zip may hold a file with a "../../file.exe" location and thus break out of the target folder. If an executable or a configuration file is overwritten with a file containing malicious code, the problem can turn into an arbitrary code execution issue quite easily.
The following is an example of a zip archive with one benign file and one malicious file. Extracting the malicous file will result in traversing out of the target folder, ending up in /root/.ssh/ overwriting the authorized_keys file:
+2018-04-15 22:04:29 ..... 19 19 good.txt
+2018-04-15 22:04:42 ..... 20 20 ../../../../../../root/.ssh/authorized_keys
Remediation
Upgrade org.apache.hadoop:hadoop-common to version 2.10.2, 3.2.3, 3.3.3-RC0 or higher.
References
critical severity
- Vulnerable module: org.apache.hadoop:hadoop-common
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › org.apache.hadoop:hadoop-common@2.2.0Remediation: Upgrade to org.apache.solr:solr-core@6.6.1.
Overview
org.apache.hadoop:hadoop-common is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models.
Affected versions of the package are vulnerable to Information Exposure.
If you use the CredentialProvider feature to encrypt passwords used in NodeManager configs, it may be possible for any Container launched by that NodeManager to gain access to the encryption password. The other passwords themselves are not directly exposed.
Remediation
Upgrade org.apache.hadoop:hadoop-common to versions 2.6.5, 2.7.3 or higher
References
critical severity
- Vulnerable module: org.apache.tika:tika-core
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.tika:tika-core@1.5Remediation: Upgrade to org.apache.solr:solr-cell@7.5.0.
Overview
org.apache.tika:tika-core is a toolkit for detecting and extracting metadata and structured text content from various documents using existing parser libraries.
Affected versions of this package are vulnerable to Arbitrary Command Injection. Clients could send carefully crafted headers to tika-server that could be used to inject commands into the command line of the server running to the tika-server.
Remediation
Upgrade org.apache.tika:tika-core to version 1.18 or higher.
References
high severity
- Vulnerable module: com.google.protobuf:protobuf-java
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › com.google.protobuf:protobuf-java@2.5.0Remediation: Upgrade to org.apache.solr:solr-core@8.0.0.
Overview
com.google.protobuf:protobuf-java is a Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data.
Affected versions of this package are vulnerable to Integer Overflow by allowing remote authenticated attackers to cause a heap-based buffer overflow in serialisation process.
Remediation
Upgrade com.google.protobuf:protobuf-java to version 3.4.0 or higher.
References
high severity
- Vulnerable module: com.google.protobuf:protobuf-java
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › com.google.protobuf:protobuf-java@2.5.0Remediation: Upgrade to org.apache.solr:solr-core@9.0.0.
Overview
com.google.protobuf:protobuf-java is a Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data.
Affected versions of this package are vulnerable to Stack-based Buffer Overflow via the parsing of nested groups or series of SGROUP tags as unknown fields with DiscardUnknownFieldsParser or Java Protobuf Lite parser, or against Protobuf map fields. An attacker can cause infinite recursion by sending malicious Protocol Buffer data.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade com.google.protobuf:protobuf-java to version 3.25.5, 4.27.5, 4.28.2 or higher.
References
high severity
- Vulnerable module: commons-fileupload:commons-fileupload
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › commons-fileupload:commons-fileupload@1.2.1Remediation: Upgrade to org.apache.solr:solr-core@8.6.0.
Overview
commons-fileupload:commons-fileupload is a component that provides a simple yet flexible means of adding support for multipart file upload functionality to servlets and web applications.
Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling when processing multipart headers. An attacker can exhaust system resources by sending malicious requests with excessively large individual multipart headers.
Remediation
Upgrade commons-fileupload:commons-fileupload to version 1.6.0 or higher.
References
high severity
- Vulnerable module: org.apache.solr:solr-core
- Introduced through: org.apache.solr:solr-core@4.8.0, org.apache.solr:solr@4.8.0 and others
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-core@9.8.0.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr@4.8.0 › org.apache.solr:solr-core@4.8.0
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-analysis-extras@4.8.0 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-analysis-extras@9.8.0.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.solr:solr-core@4.8.0
Overview
org.apache.solr:solr-core is an open source enterprise search platform built on Apache Lucene
Affected versions of this package are vulnerable to Execution with Unnecessary Privileges due to the potential for attackers to control what configset is loaded by the FileSystemConfigSetService component (in use by default in standalone and user-managed modes) during core creation. A trusted config can be replaced by a malicious one, which specifies arbitrary classes as <lib> elements, which will then be added to the classpath.
Workaround
This vulnerability can be mitigated by enforcing authorization on the affected cluster, and avoided entirely by using SolrCloud rather than FileSystemConfigSetService.
Remediation
Upgrade org.apache.solr:solr-core to version 9.8.0 or higher.
References
high severity
- Vulnerable module: org.apache.xmlbeans:xmlbeans
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.xmlbeans:xmlbeans@2.3.0Remediation: Upgrade to org.apache.solr:solr-cell@7.6.0.
Overview
Affected versions of this package are vulnerable to XML External Entity (XXE) Injection. The XML parsers used by XMLBeans did not set the properties needed to protect the user from malicious XML input. Vulnerabilities include possibilities for XML Entity Expansion attacks.
Details
XXE Injection is a type of attack against an application that parses XML input. XML is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. By default, many XML processors allow specification of an external entity, a URI that is dereferenced and evaluated during XML processing. When an XML document is being parsed, the parser can make a request and include the content at the specified URI inside of the XML document.
Attacks can include disclosing local files, which may contain sensitive data such as passwords or private user data, using file: schemes or relative paths in the system identifier.
For example, below is a sample XML document, containing an XML element- username.
<xml>
<?xml version="1.0" encoding="ISO-8859-1"?>
<username>John</username>
</xml>
An external XML entity - xxe, is defined using a system identifier and present within a DOCTYPE header. These entities can access local or remote content. For example the below code contains an external XML entity that would fetch the content of /etc/passwd and display it to the user rendered by username.
<xml>
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<username>&xxe;</username>
</xml>
Other XXE Injection attacks can access local resources that may not stop returning data, possibly impacting application availability and leading to Denial of Service.
Remediation
Upgrade org.apache.xmlbeans:xmlbeans to version 3.0.0 or higher.
References
high severity
- Vulnerable module: com.drewnoakes:metadata-extractor
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › com.drewnoakes:metadata-extractor@2.6.2Remediation: Upgrade to org.apache.solr:solr-cell@8.7.0.
Overview
com.drewnoakes:metadata-extractor is a Java library for reading metadata from image files.
Affected versions of this package are vulnerable to Buffer Overflow. Extraction of light source metadata data from an invalid/corrupt image file can lead to an infinite loop recursion within PanasonicRawWbInfo2 descriptor class, resulting in stack consumption.
Remediation
Upgrade com.drewnoakes:metadata-extractor to version v2.13.0 or higher.
References
high severity
- Vulnerable module: log4j:log4j
- Introduced through: log4j:log4j@1.2.17, org.apache.solr:solr-solrj@4.8.0 and others
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › log4j:log4j@1.2.17
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-solrj@4.8.0 › log4j:log4j@1.2.17
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.slf4j:slf4j-log4j12@1.7.7 › log4j:log4j@1.2.17
Overview
log4j:log4j is a 1.x branch of the Apache Log4j project. Note: Log4j 1.x reached End of Life in 2015, and is no longer supported.
Affected versions of this package are vulnerable to Deserialization of Untrusted Data. CVE-2020-9493 identified a deserialization issue that was present in Apache Chainsaw. Prior to Chainsaw V2.0 Chainsaw was a component of Apache Log4j 1.2.x where the same issue exists.
Details
Serialization is a process of converting an object into a sequence of bytes which can be persisted to a disk or database or can be sent through streams. The reverse process of creating object from sequence of bytes is called deserialization. Serialization is commonly used for communication (sharing objects between multiple hosts) and persistence (store the object state in a file or a database). It is an integral part of popular protocols like Remote Method Invocation (RMI), Java Management Extension (JMX), Java Messaging System (JMS), Action Message Format (AMF), Java Server Faces (JSF) ViewState, etc.
Deserialization of untrusted data (CWE-502) is when the application deserializes untrusted data without sufficiently verifying that the resulting data will be valid, thus allowing the attacker to control the state or the flow of the execution.
Remediation
There is no fixed version for log4j:log4j.
References
high severity
- Vulnerable module: log4j:log4j
- Introduced through: log4j:log4j@1.2.17, org.apache.solr:solr-solrj@4.8.0 and others
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › log4j:log4j@1.2.17
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-solrj@4.8.0 › log4j:log4j@1.2.17
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.slf4j:slf4j-log4j12@1.7.7 › log4j:log4j@1.2.17
Overview
log4j:log4j is a 1.x branch of the Apache Log4j project. Note: Log4j 1.x reached End of Life in 2015, and is no longer supported.
Affected versions of this package are vulnerable to Deserialization of Untrusted Data. JMSSink in all versions of Log4j 1.x is vulnerable to deserialization of untrusted data when the attacker has write access to the Log4j configuration or if the configuration references an LDAP service the attacker has access to. The attacker can provide a TopicConnectionFactoryBindingName configuration causing JMSSink to perform JNDI requests that result in remote code execution in a similar fashion to CVE-2021-4104.
Note: this issue only affects Log4j 1.x when specifically configured to use JMSSink, which is not the default.
Apache Log4j 1.2 reached end of life in August 2015. Users should upgrade to Log4j 2 as it addresses numerous other issues from the previous versions.
Details
Serialization is a process of converting an object into a sequence of bytes which can be persisted to a disk or database or can be sent through streams. The reverse process of creating object from sequence of bytes is called deserialization. Serialization is commonly used for communication (sharing objects between multiple hosts) and persistence (store the object state in a file or a database). It is an integral part of popular protocols like Remote Method Invocation (RMI), Java Management Extension (JMX), Java Messaging System (JMS), Action Message Format (AMF), Java Server Faces (JSF) ViewState, etc.
Deserialization of untrusted data (CWE-502) is when the application deserializes untrusted data without sufficiently verifying that the resulting data will be valid, thus allowing the attacker to control the state or the flow of the execution.
Remediation
There is no fixed version for log4j:log4j.
References
high severity
- Vulnerable module: log4j:log4j
- Introduced through: log4j:log4j@1.2.17, org.apache.solr:solr-solrj@4.8.0 and others
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › log4j:log4j@1.2.17
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-solrj@4.8.0 › log4j:log4j@1.2.17
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.slf4j:slf4j-log4j12@1.7.7 › log4j:log4j@1.2.17
Overview
log4j:log4j is a 1.x branch of the Apache Log4j project. Note: Log4j 1.x reached End of Life in 2015, and is no longer supported.
Affected versions of this package are vulnerable to SQL Injection. By design, the JDBCAppender in Log4j 1.2.x accepts an SQL statement as a configuration parameter where the values to be inserted are converters from PatternLayout. The message converter, %m, is likely to always be included. This allows attackers to manipulate the SQL by entering crafted strings into input fields or headers of an application that are logged allowing unintended SQL queries to be executed.
Note: this issue only affects Log4j 1.x when specifically configured to use the JDBCAppender, which is not the default.
Apache Log4j 1.2 reached end of life in August 2015. Users should upgrade to Log4j 2 as it addresses numerous other issues from the previous versions. Beginning in version 2.0-beta8, the JDBCAppender was re-introduced with proper support for parameterized SQL queries and further customization over the columns written to in logs.
Remediation
There is no fixed version for log4j:log4j.
References
high severity
- Vulnerable module: org.apache.commons:commons-compress
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.commons:commons-compress@1.7
Overview
org.apache.commons:commons-compress is an API for working with compression and archive formats.
Affected versions of this package are vulnerable to Infinite loop due to the improper handling of certain inputs during the parsing of dump files. An attacker can cause the application to enter an infinite loop by supplying crafted inputs.
Remediation
Upgrade org.apache.commons:commons-compress to version 1.26.0 or higher.
References
high severity
- Vulnerable module: org.apache.zookeeper:zookeeper
- Introduced through: org.apache.solr:solr-solrj@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-solrj@4.8.0 › org.apache.zookeeper:zookeeper@3.4.6Remediation: Upgrade to org.apache.solr:solr-solrj@9.1.0.
Overview
org.apache.zookeeper:zookeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.
Affected versions of this package are vulnerable to Authorization Bypass Through User-Controlled Key when the SASL Quorum Peer authentication is enabled (`quorum.auth.enableSasl=true), an attacker can bypass the authorization check by omitting the instance part in the SASL authentication ID. This allows an arbitrary endpoint to join the cluster and propagate counterfeit changes to the leader, effectively granting it full read-write access to the data tree.
Note:
This is only exploitable if
quorum.auth.enableSasl=trueis set in the configuration.Quorum Peer authentication is not enabled by default.
Remediation
Upgrade org.apache.zookeeper:zookeeper to version 3.7.2, 3.8.3, 3.9.1 or higher.
References
high severity
- Vulnerable module: org.apache.pdfbox:jempbox
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.pdfbox:jempbox@1.8.4Remediation: Upgrade to org.apache.solr:solr-cell@6.2.0.
Overview
org.apache.pdfbox:jempbox
Apache PDFBox before 1.8.12 and 2.x before 2.0.1 does not properly initialize the XML parsers, which allows context-dependent attackers to conduct XML External Entity (XXE) attacks via a crafted PDF.
Details
XXE Injection is a type of attack against an application that parses XML input. XML is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. By default, many XML processors allow specification of an external entity, a URI that is dereferenced and evaluated during XML processing. When an XML document is being parsed, the parser can make a request and include the content at the specified URI inside of the XML document.
Attacks can include disclosing local files, which may contain sensitive data such as passwords or private user data, using file: schemes or relative paths in the system identifier.
For example, below is a sample XML document, containing an XML element- username.
<?xml version="1.0" encoding="ISO-8859-1"?>
<username>John</username>
</xml>
An external XML entity - xxe, is defined using a system identifier and present within a DOCTYPE header. These entities can access local or remote content. For example the below code contains an external XML entity that would fetch the content of /etc/passwd and display it to the user rendered by username.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<username>&xxe;</username>
</xml>
Other XXE Injection attacks can access local resources that may not stop returning data, possibly impacting application availability and leading to Denial of Service.
References
high severity
- Vulnerable module: org.apache.pdfbox:pdfbox
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.pdfbox:pdfbox@1.8.4Remediation: Upgrade to org.apache.solr:solr-cell@6.2.0.
Overview
[org.apache.pdfbox:pdfbox ](http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22pdfbox %22)
Apache PDFBox XML External Entity (XXE) attack
Apache PDFBox before 1.8.12 and 2.x before 2.0.1 does not properly initialize the XML parsers, which allows context-dependent attackers to conduct XML External Entity (XXE) attacks via a crafted PDF.
Details
XXE Injection is a type of attack against an application that parses XML input. XML is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. By default, many XML processors allow specification of an external entity, a URI that is dereferenced and evaluated during XML processing. When an XML document is being parsed, the parser can make a request and include the content at the specified URI inside of the XML document.
Attacks can include disclosing local files, which may contain sensitive data such as passwords or private user data, using file: schemes or relative paths in the system identifier.
For example, below is a sample XML document, containing an XML element- username.
<?xml version="1.0" encoding="ISO-8859-1"?>
<username>John</username>
</xml>
An external XML entity - xxe, is defined using a system identifier and present within a DOCTYPE header. These entities can access local or remote content. For example the below code contains an external XML entity that would fetch the content of /etc/passwd and display it to the user rendered by username.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<username>&xxe;</username>
</xml>
Other XXE Injection attacks can access local resources that may not stop returning data, possibly impacting application availability and leading to Denial of Service.
References
high severity
- Vulnerable module: com.adobe.xmp:xmpcore
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › com.adobe.xmp:xmpcore@5.1.2Remediation: Upgrade to org.apache.solr:solr-cell@7.3.0.
Overview
com.adobe.xmp:xmpcore is a XMP Library for Java, based on the C++ XMPCore library.
XMPCore in Adobe XMP Toolkit for Java before 5.1.3 allows remote attackers to read arbitrary files via XML data containing an external entity declaration in conjunction with an entity reference, related to an XML External Entity (XXE) issue.
References
high severity
- Vulnerable module: com.google.protobuf:protobuf-java
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › com.google.protobuf:protobuf-java@2.5.0Remediation: Upgrade to org.apache.solr:solr-core@9.0.0.
Overview
com.google.protobuf:protobuf-java is a Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data.
Affected versions of this package are vulnerable to Denial of Service (DoS). An issue in protobuf-java allowed the interleaving of com.google.protobuf.UnknownFieldSet fields in such a way that would be processed out of order. A small malicious payload can occupy the parser for several minutes by creating large numbers of short-lived objects that cause frequent, repeated pauses.
Note: Protobuf javalite users are not affected.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade com.google.protobuf:protobuf-java to version 3.16.1, 3.18.2, 3.19.2 or higher.
References
high severity
- Vulnerable module: com.google.protobuf:protobuf-java
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › com.google.protobuf:protobuf-java@2.5.0Remediation: Upgrade to org.apache.solr:solr-core@9.0.0.
Overview
com.google.protobuf:protobuf-java is a Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data.
Affected versions of this package are vulnerable to Denial of Service (DoS) in MessageReflection.java due to a text format parsing issue. Inputs containing multiple instances of non-repeated embedded messages with repeated or unknown fields causes objects to be converted back and forth between mutable and immutable forms, resulting in potentially long garbage collection pauses.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade com.google.protobuf:protobuf-java to version 3.16.3, 3.19.6, 3.20.3, 3.21.7 or higher.
References
high severity
- Vulnerable module: dom4j:dom4j
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › dom4j:dom4j@1.6.1
Overview
dom4j:dom4j is a flexible XML framework for Java. Note: this artifact has been deprecated for org.dom4j:dom4j.
Affected versions of this package are vulnerable to XML External Entity (XXE) Injection due to improper validation of the QName inputs.
Details
XXE Injection is a type of attack against an application that parses XML input. XML is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. By default, many XML processors allow specification of an external entity, a URI that is dereferenced and evaluated during XML processing. When an XML document is being parsed, the parser can make a request and include the content at the specified URI inside of the XML document.
Attacks can include disclosing local files, which may contain sensitive data such as passwords or private user data, using file: schemes or relative paths in the system identifier.
For example, below is a sample XML document, containing an XML element- username.
<xml>
<?xml version="1.0" encoding="ISO-8859-1"?>
<username>John</username>
</xml>
An external XML entity - xxe, is defined using a system identifier and present within a DOCTYPE header. These entities can access local or remote content. For example the below code contains an external XML entity that would fetch the content of /etc/passwd and display it to the user rendered by username.
<xml>
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<username>&xxe;</username>
</xml>
Other XXE Injection attacks can access local resources that may not stop returning data, possibly impacting application availability and leading to Denial of Service.
Remediation
There is no fixed version for dom4j:dom4j.
References
high severity
- Vulnerable module: org.apache.commons:commons-compress
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.commons:commons-compress@1.7Remediation: Upgrade to org.apache.solr:solr-cell@8.10.1.
Overview
org.apache.commons:commons-compress is an API for working with compression and archive formats.
Affected versions of this package are vulnerable to Denial of Service (DoS). When reading a specially crafted ZIP archive, Compress can be made to allocate large amounts of memory that finally leads to an out-of-memory error even for very small inputs. This could be used to mount a denial of service attack against services that use Compress' zip package.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade org.apache.commons:commons-compress to version 1.21 or higher.
References
high severity
- Vulnerable module: org.apache.hadoop:hadoop-hdfs
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › org.apache.hadoop:hadoop-hdfs@2.2.0Remediation: Upgrade to org.apache.solr:solr-core@6.6.1.
Overview
http://hadoop.apache.org/ is the primary distributed storage used by Hadoop applications.
Affected versions of this package are vulnerable to Information Exposure. An attacker may retrive information about paths that they do not have permissions to see.
Remediation
Upgrade org.apache.hadoop:hadoop-hdfs to versions 2.7.4 or higher.
References
high severity
- Vulnerable module: org.apache.poi:poi
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.poi:poi@3.10-beta2Remediation: Upgrade to org.apache.solr:solr-cell@7.3.0.
Overview
org.apache.poi:poi is a java library for reading and writing Microsoft Office binary and OOXML file formats.
Affected versions of this package are vulnerable to Denial of Service (DoS) in two possible scenarios:
- Infinite Loops while parsing crafted WMF, EMF, MSG and macros.
- Out of Memory Exceptions while parsing crafted DOC, PPT and XLS.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade org.apache.poi:poi to version 3.17 or higher.
References
high severity
- Vulnerable module: org.apache.poi:poi-scratchpad
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.poi:poi-scratchpad@3.10-beta2Remediation: Upgrade to org.apache.solr:solr-cell@8.11.3.
Overview
org.apache.poi:poi-scratchpad is a Java API To Access Microsoft Format Files
Affected versions of this package are vulnerable to Denial of Service (DoS) via the parsing of a crafted TNEF file coming from an untrusted source, causing memory exhaustion.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade org.apache.poi:poi-scratchpad to version 5.2.1 or higher.
References
high severity
- Vulnerable module: org.apache.poi:poi-scratchpad
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.poi:poi-scratchpad@3.10-beta2Remediation: Upgrade to org.apache.solr:solr-cell@7.3.0.
Overview
org.apache.poi:poi-scratchpad is a Java API To Access Microsoft Format Files
Affected versions of this package are vulnerable to Denial of Service (DoS) in two possible scenarios:
- Infinite Loops while parsing crafted WMF, EMF, MSG and macros.
- Out of Memory Exceptions while parsing crafted DOC, PPT and XLS.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade org.apache.poi:poi-scratchpad to version 3.17 or higher.
References
high severity
- Vulnerable module: org.apache.solr:solr-core
- Introduced through: org.apache.solr:solr-core@4.8.0, org.apache.solr:solr@4.8.0 and others
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-core@5.0.0.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr@4.8.0 › org.apache.solr:solr-core@4.8.0
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-analysis-extras@4.8.0 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-analysis-extras@5.0.0.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-cell@5.0.0.
Overview
org.apache.solr:solr-core is an open source enterprise search platform built on Apache Lucene
Affected versions of this package are vulnerable to Denial of Service (DoS) via the update handler. Exploiting this vulnerability is possible by leveraging XML DOCTYPE and ENTITY type elements when the attacker can create a pattern that will expand while the server parses the XML.
Mitigation
Ensure your network settings are configured so that only trusted traffic is allowed to post documents to the running Solr instances.
PoC
POST /solr/collection1/update?wt=json HTTP/1.1
Host: <TARGET_IP>:8983
<!DOCTYPE data [
<!ENTITY lol "lol">
<!ENTITY lol1 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;">
<!ENTITY lol2 "&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;">
<!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;">
<!ENTITY lol4 "&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;">
<!ENTITY lol5 "&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;">
<!ENTITY lol6 "&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;">
<!ENTITY lol7 "&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;">
<!ENTITY lol8 "&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;">
<!ENTITY lol9 "&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;">
]>
<add>
<doc>
<field name="id">&lol9;</field>
<field name="title">change.me</field>
</doc>
</add>
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade org.apache.solr:solr-core to version 5.0.0 or higher.
References
high severity
- Vulnerable module: org.apache.solr:solr-core
- Introduced through: org.apache.solr:solr-core@4.8.0, org.apache.solr:solr@4.8.0 and others
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-core@5.5.4.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr@4.8.0 › org.apache.solr:solr-core@4.8.0
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-analysis-extras@4.8.0 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-analysis-extras@5.5.4.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-cell@5.5.4.
Overview
org.apache.solr:solr-core is an open source enterprise search platform built on Apache Lucene.
Affected versions of this package are vulnerable to Directory Traversal attacks. The Index Replication feature supports an HTTP API, but does not validate the file_name parameter, which is supplied by the user. An attacker can craft a special request and read any file on the server.
Details
A Directory Traversal attack (also known as path traversal) aims to access files and directories that are stored outside the intended folder. By manipulating files with "dot-dot-slash (../)" sequences and its variations, or by using absolute file paths, it may be possible to access arbitrary files and directories stored on file system, including application source code, configuration, and other critical system files.
Directory Traversal vulnerabilities can be generally divided into two types:
- Information Disclosure: Allows the attacker to gain information about the folder structure or read the contents of sensitive files on the system.
st is a module for serving static files on web pages, and contains a vulnerability of this type. In our example, we will serve files from the public route.
If an attacker requests the following URL from our server, it will in turn leak the sensitive private key of the root user.
curl http://localhost:8080/public/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/root/.ssh/id_rsa
Note %2e is the URL encoded version of . (dot).
- Writing arbitrary files: Allows the attacker to create or replace existing files. This type of vulnerability is also known as
Zip-Slip.
One way to achieve this is by using a malicious zip archive that holds path traversal filenames. When each filename in the zip archive gets concatenated to the target extraction folder, without validation, the final path ends up outside of the target folder. If an executable or a configuration file is overwritten with a file containing malicious code, the problem can turn into an arbitrary code execution issue quite easily.
The following is an example of a zip archive with one benign file and one malicious file. Extracting the malicious file will result in traversing out of the target folder, ending up in /root/.ssh/ overwriting the authorized_keys file:
2018-04-15 22:04:29 ..... 19 19 good.txt
2018-04-15 22:04:42 ..... 20 20 ../../../../../../root/.ssh/authorized_keys
References
high severity
- Vulnerable module: org.apache.tika:tika-core
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.tika:tika-core@1.5Remediation: Upgrade to org.apache.solr:solr-cell@7.6.0.
Overview
org.apache.tika:tika-core is a toolkit for detecting and extracting metadata and structured text content from various documents using existing parser libraries.
Affected versions of this package are vulnerable to XML External Entity (XXE) Injection. The XML parsers were not configured to limit entity expansion.
Details
XXE Injection is a type of attack against an application that parses XML input. XML is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. By default, many XML processors allow specification of an external entity, a URI that is dereferenced and evaluated during XML processing. When an XML document is being parsed, the parser can make a request and include the content at the specified URI inside of the XML document.
Attacks can include disclosing local files, which may contain sensitive data such as passwords or private user data, using file: schemes or relative paths in the system identifier.
For example, below is a sample XML document, containing an XML element- username.
<xml>
<?xml version="1.0" encoding="ISO-8859-1"?>
<username>John</username>
</xml>
An external XML entity - xxe, is defined using a system identifier and present within a DOCTYPE header. These entities can access local or remote content. For example the below code contains an external XML entity that would fetch the content of /etc/passwd and display it to the user rendered by username.
<xml>
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<username>&xxe;</username>
</xml>
Other XXE Injection attacks can access local resources that may not stop returning data, possibly impacting application availability and leading to Denial of Service.
Remediation
Upgrade org.apache.tika:tika-core to version 1.19 or higher.
References
high severity
- Vulnerable module: org.apache.tika:tika-parsers
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.tika:tika-parsers@1.5Remediation: Upgrade to org.apache.solr:solr-cell@7.6.0.
Overview
org.apache.tika:tika-parsers is a toolkit for detecting and extracting metadata and structured text content from various documents using existing parser libraries.
Affected versions of this package are vulnerable to XML External Entity (XXE) Injection. The XML parsers were not configured to limit entity expansion.
Details
XXE Injection is a type of attack against an application that parses XML input. XML is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. By default, many XML processors allow specification of an external entity, a URI that is dereferenced and evaluated during XML processing. When an XML document is being parsed, the parser can make a request and include the content at the specified URI inside of the XML document.
Attacks can include disclosing local files, which may contain sensitive data such as passwords or private user data, using file: schemes or relative paths in the system identifier.
For example, below is a sample XML document, containing an XML element- username.
<xml>
<?xml version="1.0" encoding="ISO-8859-1"?>
<username>John</username>
</xml>
An external XML entity - xxe, is defined using a system identifier and present within a DOCTYPE header. These entities can access local or remote content. For example the below code contains an external XML entity that would fetch the content of /etc/passwd and display it to the user rendered by username.
<xml>
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<username>&xxe;</username>
</xml>
Other XXE Injection attacks can access local resources that may not stop returning data, possibly impacting application availability and leading to Denial of Service.
Remediation
Upgrade org.apache.tika:tika-parsers to version 1.19 or higher.
References
high severity
- Vulnerable module: org.apache.zookeeper:zookeeper
- Introduced through: org.apache.solr:solr-solrj@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-solrj@4.8.0 › org.apache.zookeeper:zookeeper@3.4.6Remediation: Upgrade to org.apache.solr:solr-solrj@6.6.0.
Overview
org.apache.zookeeper:zookeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.
Affected versions of this package are vulnerable to Authentication Bypass. No authentication/authorization is enforced when a server attempts to join a quorum, as a result an arbitrary end point could join the cluster and begin propagating counterfeit changes to the leader.
Remediation
Upgrade org.apache.zookeeper:zookeeper to version 3.4.10, 3.5.4-beta or higher.
References
high severity
- Vulnerable module: org.apache.zookeeper:zookeeper
- Introduced through: org.apache.solr:solr-solrj@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-solrj@4.8.0 › org.apache.zookeeper:zookeeper@3.4.6Remediation: Upgrade to org.apache.solr:solr-solrj@6.6.0.
Overview
org.apache.zookeeper:zookeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.
Affected versions of this package are vulnerable to Denial of Service (DoS).
Four letter zookeeper commands (such as wchp/wchc ) are not properly handled, which leads to the server unable to serve legitimate client requests.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade org.apache.zookeeper:zookeeper to version 3.4.10, 3.5.3-beta or higher.
References
high severity
- Vulnerable module: org.eclipse.jetty:jetty-io
- Introduced through: org.eclipse.jetty:jetty-server@8.1.15.v20140411 and org.eclipse.jetty:jetty-servlet@8.1.15.v20140411
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.eclipse.jetty:jetty-server@8.1.15.v20140411 › org.eclipse.jetty:jetty-http@8.1.10.v20130312 › org.eclipse.jetty:jetty-io@8.1.10.v20130312Remediation: Upgrade to org.eclipse.jetty:jetty-server@9.0.0.v20130308.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.eclipse.jetty:jetty-servlet@8.1.15.v20140411 › org.eclipse.jetty:jetty-security@8.1.10.v20130312 › org.eclipse.jetty:jetty-server@8.1.15.v20140411 › org.eclipse.jetty:jetty-http@8.1.10.v20130312 › org.eclipse.jetty:jetty-io@8.1.10.v20130312Remediation: Upgrade to org.eclipse.jetty:jetty-servlet@9.0.0.v20130308.
Overview
Affected versions of this package are vulnerable to Denial of Service (DoS). CPU usage can reach 100% upon receiving a large invalid TLS frame.
PoC
// server
public class MyServer {
public static void startServer() throws Exception {
SslContextFactory sslContextFactory = new SslContextFactory.Server();
HttpConnectionFactory httpFactory = new HttpConnectionFactory();
Server server = new Server();
ServerConnector connector = new
ServerConnector(server,null,null,null,1,-1,AbstractConnectionFactory.getFactories(sslContextFactory ,httpFactory));
connector.setPort(9988);
connector.setHost("localhost");
server.setConnectors(new Connector[]{connector});
ServletContextHandler context = new ServletContextHandler();
context.setContextPath("/");
HandlerCollection handlerCollection= new HandlerCollection();
handlerCollection.setHandlers(new Handler[]{context,new DefaultHandler()});
server.setHandler(handlerCollection);
server.start();
server.join();
}
public static void main(String[] args) throws Exception {
startServer();
}
}
public class MyClient {
// client
private static byte[] buildMessage() {
byte[] bytes = new byte[20005];
bytes[0] = 22; // record type
bytes[1] = 3; // major version
bytes[2] = 3; // minor version
bytes[3] = 78; // record length 2 bytes
bytes[4] = 32; // record length
bytes[5] = 1; // message type
bytes[6] = 0; // message length 3 bytes
bytes[7] = 78;
bytes[8] = 23;
for( int i = 9; i < bytes.length; i++) {
bytes[i] = 1;
}
return bytes;
}
public static void sendMessage() throws Exception {
byte[] bytes = buildMessage();
SocketFactory socketFactory = SocketFactory.getDefault();
Socket socket = socketFactory.createSocket("localhost",9988);
socket.getOutputStream().write(bytes);
socket.close();
}
public static void main(String[] args) throws Exception {
sendMessage();
}
}
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade org.eclipse.jetty:jetty-io to version 9.4.39.v20210325, 10.0.2, 11.0.2 or higher.
References
high severity
- Vulnerable module: org.eclipse.jetty:jetty-server
- Introduced through: org.eclipse.jetty:jetty-server@8.1.15.v20140411 and org.eclipse.jetty:jetty-servlet@8.1.15.v20140411
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.eclipse.jetty:jetty-server@8.1.15.v20140411Remediation: Upgrade to org.eclipse.jetty:jetty-server@9.3.24.v20180605.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.eclipse.jetty:jetty-servlet@8.1.15.v20140411 › org.eclipse.jetty:jetty-security@8.1.10.v20130312 › org.eclipse.jetty:jetty-server@8.1.15.v20140411Remediation: Upgrade to org.eclipse.jetty:jetty-servlet@9.3.24.v20180605.
Overview
org.eclipse.jetty:jetty-server is a lightweight highly scalable java based web server and servlet engine.
Affected versions of this package are vulnerable to Web Cache Poisoning. An HTTP/1 style request line (i.e. method space URI space version) that declares a version of HTTP/0.9 was accepted and treated as a 0.9 request. If deployed behind an intermediary that also accepted and passed through the 0.9 version, the response sent could be interpreted by the intermediary as HTTP/1 headers. This could be used to poison the cache if the server allowed the origin client to generate arbitrary content in the response.
Remediation
Upgrade org.eclipse.jetty:jetty-server to version 9.3.24.v20180605, 9.4.11.v20180605 or higher.
References
high severity
- Vulnerable module: org.eclipse.jetty:jetty-util
- Introduced through: org.eclipse.jetty:jetty-server@8.1.15.v20140411 and org.eclipse.jetty:jetty-servlet@8.1.15.v20140411
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.eclipse.jetty:jetty-server@8.1.15.v20140411 › org.eclipse.jetty:jetty-http@8.1.10.v20130312 › org.eclipse.jetty:jetty-io@8.1.10.v20130312 › org.eclipse.jetty:jetty-util@8.1.10.v20130312Remediation: Upgrade to org.eclipse.jetty:jetty-server@9.0.0.v20130308.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.eclipse.jetty:jetty-servlet@8.1.15.v20140411 › org.eclipse.jetty:jetty-security@8.1.10.v20130312 › org.eclipse.jetty:jetty-server@8.1.15.v20140411 › org.eclipse.jetty:jetty-http@8.1.10.v20130312 › org.eclipse.jetty:jetty-io@8.1.10.v20130312 › org.eclipse.jetty:jetty-util@8.1.10.v20130312Remediation: Upgrade to org.eclipse.jetty:jetty-servlet@9.0.0.v20130308.
Overview
org.eclipse.jetty:jetty-util is a lightweight highly scalable java based web server and servlet engine.
Affected versions of this package are vulnerable to Timing Attacks. A flaw in the util/security/Password.java class makes it easier for remote attackers to obtain access by observing elapsed times before rejection of incorrect passwords.
Remediation
Upgrade org.eclipse.jetty:jetty-util to versions 9.2.22, 9.3.20, 9.4.6 or higher.
References
high severity
- Vulnerable module: dom4j:dom4j
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › dom4j:dom4j@1.6.1
Overview
dom4j:dom4j is a flexible XML framework for Java. Note: this artifact has been deprecated for org.dom4j:dom4j.
Affected versions of this package are vulnerable to XML External Entity (XXE) Injection. By using the default SaxReader() provided by Dom4J, external DTDs and External Entities are allowed, resulting in a possible XXE.
Details
XXE Injection is a type of attack against an application that parses XML input. XML is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. By default, many XML processors allow specification of an external entity, a URI that is dereferenced and evaluated during XML processing. When an XML document is being parsed, the parser can make a request and include the content at the specified URI inside of the XML document.
Attacks can include disclosing local files, which may contain sensitive data such as passwords or private user data, using file: schemes or relative paths in the system identifier.
For example, below is a sample XML document, containing an XML element- username.
<xml>
<?xml version="1.0" encoding="ISO-8859-1"?>
<username>John</username>
</xml>
An external XML entity - xxe, is defined using a system identifier and present within a DOCTYPE header. These entities can access local or remote content. For example the below code contains an external XML entity that would fetch the content of /etc/passwd and display it to the user rendered by username.
<xml>
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<username>&xxe;</username>
</xml>
Other XXE Injection attacks can access local resources that may not stop returning data, possibly impacting application availability and leading to Denial of Service.
Remediation
There is no fixed version for dom4j:dom4j.
References
high severity
- Vulnerable module: commons-fileupload:commons-fileupload
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › commons-fileupload:commons-fileupload@1.2.1Remediation: Upgrade to org.apache.solr:solr-core@5.5.2.
Overview
commons-fileupload:commons-fileupload
Affected versions of this package are vulnerable to Arbitrary File Write.
Details
The DiskFileItem class in Apache Commons FileUpload, as used in Red Hat JBoss BRMS 5.3.1; JBoss Portal 4.3 CP07, 5.2.2, and 6.0.0; and Red Hat JBoss Web Server 1.0.2 allows remote attackers to write to arbitrary files via a NULL byte in a file name in a serialized instance.
References
high severity
- Vulnerable module: commons-fileupload:commons-fileupload
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › commons-fileupload:commons-fileupload@1.2.1Remediation: Upgrade to org.apache.solr:solr-core@5.5.2.
Overview
commons-fileupload:commons-fileupload
Affected versions of this package are vulnerable to Denial of Service (DoS) attacks. An attacker may send a specially crafted Content-Type header that bypasses a loop's intended exit conditions, causing an infinite loop and high CPU consumption.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
References
high severity
- Vulnerable module: org.apache.hadoop:hadoop-hdfs
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › org.apache.hadoop:hadoop-hdfs@2.2.0Remediation: Upgrade to org.apache.solr:solr-core@6.2.0.
Overview
org.apache.hadoop:hadoop-hdfs is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models.
Affected versions of this package are vulnerable to Cryptographic Issues. It does not check the BlockTokens of clients when Kerberos is enabled and the DataNode has checked out the same BlockPool twice from a NodeName, which might allow remote clients to read arbitrary blocks, write to blocks to which they only have read access, and have other unspecified impacts.
Remediation
Upgrade org.apache.hadoop:hadoop-hdfs to version 2.7.0 or higher.
References
high severity
- Vulnerable module: org.apache.hadoop:hadoop-hdfs
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › org.apache.hadoop:hadoop-hdfs@2.2.0Remediation: Upgrade to org.apache.solr:solr-core@6.2.0.
Overview
org.apache.hadoop:hadoop-hdfs is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models.
HDFS clients interact with a servlet on the DataNode to browse the HDFS namespace. The NameNode is provided as a query parameter that is not validated in Apache Hadoop before 2.7.0.
References
high severity
- Vulnerable module: org.apache.solr:solr-core
- Introduced through: org.apache.solr:solr-core@4.8.0, org.apache.solr:solr@4.8.0 and others
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-core@8.8.2.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr@4.8.0 › org.apache.solr:solr-core@4.8.0
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-analysis-extras@4.8.0 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-analysis-extras@8.8.2.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-cell@8.8.2.
Overview
org.apache.solr:solr-core is an open source enterprise search platform built on Apache Lucene
Affected versions of this package are vulnerable to Server-Side Request Forgery (SSRF). The ReplicationHandler (normally registered at /replication under a Solr core) has a masterUrl (also leaderUrl alias) parameter that is used to designate another ReplicationHandler on another Solr core to replicate index data into the local core.
These parameters are not checked against a similar configuration it uses for the shards parameter.
Remediation
Upgrade org.apache.solr:solr-core to version 8.8.2 or higher.
References
high severity
- Vulnerable module: org.apache.solr:solr-core
- Introduced through: org.apache.solr:solr-core@4.8.0, org.apache.solr:solr@4.8.0 and others
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-core@8.2.0.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr@4.8.0 › org.apache.solr:solr-core@4.8.0
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-analysis-extras@4.8.0 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-analysis-extras@8.2.0.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-cell@8.2.0.
Overview
org.apache.solr:solr-core is an open source enterprise search platform built on Apache Lucene
Affected versions of this package are vulnerable to XML External Entity (XXE) Injection. It is possible for an attacker to inject external entities through DataImportHandler's dataConfig parameter which is used for setting the whole DIH configuration when using debug mode of the DIH admin screen.
Remediation
Upgrade org.apache.solr:solr-core to version 8.2.0 or higher.
References
medium severity
- Vulnerable module: commons-configuration:commons-configuration
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › commons-configuration:commons-configuration@1.6
Overview
Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling due several issues in the loading of untrusted configurations. An attacker can cause excessive resource consumption by manipulating the configuration data or introducing unexpected usage patterns. Users affected by this issue are recommended to upgrade to the 2.x version line org.apache.commons:commons-configuration2, which fixes these issues.
Note: This is only exploitable if the application is configured to load untrusted configurations.
Remediation
There is no fixed version for commons-configuration:commons-configuration.
References
medium severity
- Vulnerable module: commons-io:commons-io
- Introduced through: commons-io:commons-io@2.1 and org.apache.solr:solr-solrj@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › commons-io:commons-io@2.1Remediation: Upgrade to commons-io:commons-io@2.14.0.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-solrj@4.8.0 › commons-io:commons-io@2.1Remediation: Upgrade to org.apache.solr:solr-solrj@9.0.0.
Overview
commons-io:commons-io is a The Apache Commons IO library contains utility classes, stream implementations, file filters, file comparators, endian transformation classes, and much more.
Affected versions of this package are vulnerable to Uncontrolled Resource Consumption ('Resource Exhaustion') through the XmlStreamReader class. An attacker can cause the application to consume excessive CPU resources by sending specially crafted XML content.
Remediation
Upgrade commons-io:commons-io to version 2.14.0 or higher.
References
medium severity
- Vulnerable module: org.apache.poi:poi-ooxml
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.poi:poi-ooxml@3.10-beta2
Overview
org.apache.poi:poi-ooxml is a Java API To Access Microsoft Format Files.
Affected versions of this package are vulnerable to Improper Input Validation due to the parsing process of OOXML format files. An attacker can manipulate the file content by adding zip entries with duplicate names, leading to inconsistent data being read by different products depending on which duplicate entry is selected.
Remediation
Upgrade org.apache.poi:poi-ooxml to version 5.4.0 or higher.
References
medium severity
- Vulnerable module: org.apache.hadoop:hadoop-common
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › org.apache.hadoop:hadoop-common@2.2.0Remediation: Upgrade to org.apache.solr:solr-core@9.0.0.
Overview
org.apache.hadoop:hadoop-common is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models.
Affected versions of this package are vulnerable to Creation of Temporary File in Directory with Insecure Permissions in the RunJar.run() method. If sensitive data is stored in this file, a local attacker can view it by accessing the temporary directory where this data is stored.
Note:
This vulnerability can only be exploited on unix-like systems, where the system temporary directory is shared between all local users.
Remediation
Upgrade org.apache.hadoop:hadoop-common to version 3.4.0 or higher.
References
medium severity
- Vulnerable module: log4j:log4j
- Introduced through: log4j:log4j@1.2.17, org.apache.solr:solr-solrj@4.8.0 and others
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › log4j:log4j@1.2.17
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-solrj@4.8.0 › log4j:log4j@1.2.17
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.slf4j:slf4j-log4j12@1.7.7 › log4j:log4j@1.2.17
Overview
log4j:log4j is a 1.x branch of the Apache Log4j project. Note: Log4j 1.x reached End of Life in 2015, and is no longer supported.
Affected versions of this package are vulnerable to Arbitrary Code Execution.
Note: Even though this vulnerability appears to be related to the log4j 2.x vulnerability, the 1.x branch of the module requires an attacker to have access to modify configurations to be exploitable, which is rarely possible.
In order to leverage this vulnerability the following conditions must be met:
- The application has enabled
JMSAppender(or a class that extendsJMSAppender) - The attacker has access to directly modify the
TopicBindingNameorTopicConnectionFactoryBindingNameconfiguration variables - which is an unlikely scenario
If these conditions are met, log4j 1.x allows a lookup feature that does not protect against attacker-controlled LDAP and other JNDI related endpoints. Therefore, an attacker with access to the aforementioned configuration variables is able to execute arbitrary code when loaded from an LDAP server.
PoC
import org.apache.log4j.net.JMSAppender;
// ...
JMSAppender a = new JMSAppender();
a.setTopicConnectionFactoryBindingName("ldap://<malicious-url>");
// OR a.setTopicBindingName("ldap://<malicious-url>");
a.activateOptions();
Remediation
There is no fixed version for log4j:log4j.
References
medium severity
- Vulnerable module: commons-fileupload:commons-fileupload
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › commons-fileupload:commons-fileupload@1.2.1Remediation: Upgrade to org.apache.solr:solr-core@8.6.0.
Overview
commons-fileupload:commons-fileupload is a component that provides a simple yet flexible means of adding support for multipart file upload functionality to servlets and web applications.
Affected versions of this package are vulnerable to Denial of Service (DoS) when an attacker sends a large number of request parts in a series of uploads or a single multipart upload.
NOTE: After upgrading to the fixed version, the setFileCountMax() must be explicitly set to avoid this vulnerability.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade commons-fileupload:commons-fileupload to version 1.5 or higher.
References
medium severity
- Vulnerable module: commons-fileupload:commons-fileupload
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › commons-fileupload:commons-fileupload@1.2.1Remediation: Upgrade to org.apache.solr:solr-core@5.5.4.
Overview
commons-fileupload:commons-fileupload provides a simple yet flexible means of adding support for multipart file upload functionality to servlets and web applications.
Affected versions of the package are vulnerable to Information Disclosure because the InputStream is not closed on exception.
Remediation
Upgrade commons-fileupload to version 1.3.2 or higher.
References
medium severity
- Vulnerable module: org.apache.commons:commons-compress
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.commons:commons-compress@1.7Remediation: Upgrade to org.apache.solr:solr-cell@8.10.1.
Overview
org.apache.commons:commons-compress is an API for working with compression and archive formats.
Affected versions of this package are vulnerable to Denial of Service (DoS). When reading a specially crafted 7Z archive, Compress can be made to allocate large amounts of memory that finally leads to an out-of-memory error even for very small inputs. This could be used to mount a denial of service attack against services that use Compress' sevenz package.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade org.apache.commons:commons-compress to version 1.21 or higher.
References
medium severity
- Vulnerable module: org.apache.commons:commons-compress
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.commons:commons-compress@1.7Remediation: Upgrade to org.apache.solr:solr-cell@8.10.1.
Overview
org.apache.commons:commons-compress is an API for working with compression and archive formats.
Affected versions of this package are vulnerable to Denial of Service (DoS). When reading a specially crafted 7Z archive, the construction of the list of codecs that decompress an entry can result in an infinite loop. This could be used to mount a denial of service attack against services that use Compress' sevenz package.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade org.apache.commons:commons-compress to version 1.21 or higher.
References
medium severity
- Vulnerable module: org.apache.commons:commons-compress
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.commons:commons-compress@1.7Remediation: Upgrade to org.apache.solr:solr-cell@8.10.1.
Overview
org.apache.commons:commons-compress is an API for working with compression and archive formats.
Affected versions of this package are vulnerable to Denial of Service (DoS). When reading a specially crafted TAR archive, Compress can be made to allocate large amounts of memory that finally leads to an out-of-memory error even for very small inputs. This could be used to mount a denial of service attack against services that use Compress' tar package.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade org.apache.commons:commons-compress to version 1.21 or higher.
References
medium severity
- Vulnerable module: org.apache.hadoop:hadoop-common
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › org.apache.hadoop:hadoop-common@2.2.0Remediation: Upgrade to org.apache.solr:solr-core@8.0.0.
Overview
org.apache.hadoop:hadoop-common is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models.
Affected versions of this package are vulnerable to Information Exposure. A cluster user may be able to expose private files owned by the user running the MapReduce job history server process. A malicious user can construct a configuration file containing XML directives that reference sensitive files on the MapReduce job history server host.
Remediation
Upgrade org.apache.hadoop:hadoop-common to version 2.8.3, 3.0.0 or higher.
References
medium severity
- Vulnerable module: org.apache.hadoop:hadoop-hdfs
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › org.apache.hadoop:hadoop-hdfs@2.2.0Remediation: Upgrade to org.apache.solr:solr-core@5.1.0.
Overview
org.apache.hadoop:hadoop-hdfs is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models.
Affected versions of this package are vulnerable to Privilege Escalation. Does not check authorization for the refreshNamenodes, deleteBlockPool and shutdownDatanode HDFS admin commands, which allows remote authenticated users to cause a denial of service or perform unnecessary operations by issuing a command.
Remediation
Upgrade org.apache.hadoop:hadoop-hdfs to version 0.23.11, 2.4.1 or higher.
References
medium severity
- Vulnerable module: org.apache.hadoop:hadoop-hdfs
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › org.apache.hadoop:hadoop-hdfs@2.2.0Remediation: Upgrade to org.apache.solr:solr-core@8.0.0.
Overview
org.apache.hadoop:hadoop-hdfs is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models.
Affected versions of this package are vulnerable to XML External Entity Injection (XXE) due to insecure parsing of XML files via the OfflineEditsXmlLoader.java tool.
Remediation
Upgrade org.apache.hadoop:hadoop-hdfs to version 3.3.2 or higher.
References
medium severity
- Vulnerable module: org.apache.pdfbox:pdfbox
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.pdfbox:pdfbox@1.8.4Remediation: Upgrade to org.apache.solr:solr-cell@6.6.2.
Overview
org.apache.pdfbox:pdfbox
Affected versions of the package are vulnerable to Authentication Bypass. The ReadOnly permissions are not called in the StandardSecurityHandler, allowing all users to edit the PDF file although the are not the owners.
Remediation
Upgrade org.apache.pdfbox:pdfbox to versions 1.8.13 ,2.0.2 or higher.
References
medium severity
- Vulnerable module: org.apache.pdfbox:pdfbox
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.pdfbox:pdfbox@1.8.4Remediation: Upgrade to org.apache.solr:solr-cell@7.6.0.
Overview
org.apache.pdfbox:pdfbox is an open source Java tool for working with PDF documents.
Affected versions of this package are vulnerable to Denial of Service (DoS) attacks. A carefully crafted PDF file can trigger an extremely long running computation when parsing the page tree.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade org.apache.pdfbox:pdfbox to version 2.0.12, 1.8.16 or higher.
References
- https://lists.apache.org/thread.html/a9760973a873522f4d4c0a99916ceb74f361d91006b663a0a418d34a@%3Cannounce.apache.org%3E
- https://github.com/apache/pdfbox/commit/4fa98533358c106522cd1bfe4cd9be2532af852
- https://github.com/apache/pdfbox/commit/a6deb9d7ffec79986cac82345db724b343ca3e5
- https://github.com/apache/pdfbox/commit/f7dc8eed7df007c88421919932e2d4de44d2ae2
medium severity
- Vulnerable module: org.apache.tika:tika-core
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.tika:tika-core@1.5Remediation: Upgrade to org.apache.solr:solr-cell@7.6.0.
Overview
org.apache.tika:tika-core is a toolkit for detecting and extracting metadata and structured text content from various documents using existing parser libraries.
Affected versions of this package are vulnerable to XML External Entity (XXE) Injection attacks. Under certain circumstances, the entity expansion limit might be removed during XML parsing.
Details
XXE Injection is a type of attack against an application that parses XML input. XML is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. By default, many XML processors allow specification of an external entity, a URI that is dereferenced and evaluated during XML processing. When an XML document is being parsed, the parser can make a request and include the content at the specified URI inside of the XML document.
Attacks can include disclosing local files, which may contain sensitive data such as passwords or private user data, using file: schemes or relative paths in the system identifier.
For example, below is a sample XML document, containing an XML element- username.
<?xml version="1.0" encoding="ISO-8859-1"?>
<username>John</username>
</xml>
An external XML entity - xxe, is defined using a system identifier and present within a DOCTYPE header. These entities can access local or remote content. For example the below code contains an external XML entity that would fetch the content of /etc/passwd and display it to the user rendered by username.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<username>&xxe;</username>
</xml>
Other XXE Injection attacks can access local resources that may not stop returning data, possibly impacting application availability and leading to Denial of Service.
Remediation
Upgrade org.apache.tika:tika-core to version 1.19.1 or higher.
References
medium severity
- Vulnerable module: org.apache.solr:solr-core
- Introduced through: org.apache.solr:solr-core@4.8.0, org.apache.solr:solr@4.8.0 and others
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-core@7.1.0.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr@4.8.0 › org.apache.solr:solr-core@4.8.0
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-analysis-extras@4.8.0 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-analysis-extras@7.1.0.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-cell@7.1.0.
Overview
org.apache.solr:solr-core is an open source enterprise search platform built on Apache Lucene
Affected versions of this package are vulnerable to Remote Code Execution (RCE). One can issue a HTTP request parameter stream.body which Solr will interpret as body content on the request, i.e. act as a POST request. This is useful for development and testing but can pose a security risk in production since users/clients with permission to GET on various endpoints can also post by using stream.body. The classic example is &stream.body=<delete><query>:</query></delete>. Furthermore, this feature cannot be turned off by configuration as it is not controlled by enableRemoteStreaming.
Remediation
Upgrade org.apache.solr:solr-core to version 7.1.0 or higher.
References
medium severity
- Vulnerable module: org.eclipse.jetty:jetty-http
- Introduced through: org.apache.solr:solr-core@4.8.0, org.eclipse.jetty:jetty-server@8.1.15.v20140411 and others
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › org.eclipse.jetty:jetty-http@8.1.10.v20130312
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.eclipse.jetty:jetty-server@8.1.15.v20140411 › org.eclipse.jetty:jetty-http@8.1.10.v20130312Remediation: Upgrade to org.eclipse.jetty:jetty-server@9.4.57.v20241219.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.eclipse.jetty:jetty-servlet@8.1.15.v20140411 › org.eclipse.jetty:jetty-security@8.1.10.v20130312 › org.eclipse.jetty:jetty-server@8.1.15.v20140411 › org.eclipse.jetty:jetty-http@8.1.10.v20130312Remediation: Upgrade to org.eclipse.jetty:jetty-servlet@9.4.57.v20241219.
Overview
org.eclipse.jetty:jetty-http is an is a http module for jetty server.
Affected versions of this package are vulnerable to Improper Validation of Syntactic Correctness of Input via the HttpURI class due to insufficient validation on the authority segment of a URI. An attacker can manipulate the URI parsing to redirect requests or initiate server-side requests to unintended destinations by supplying malformed URIs that bypass validation checks.
Notes:
This is only exploitable if the application uses decoded user data as encoded URIs in conjunction with the
HttpURIclass used directly;The Jetty usage of the
HttpURIclass is not vulnerable.
Workaround
This vulnerability can be mitigated by not passing decoded user data as encoded URIs to any URI class/method, including HttpURI.
PoC
http://browser.check &@vulndetector.com/
http://browser.check #@vulndetector.com/
http://browser.check?@vulndetector.com/
http://browser.check#@vulndetector.com/
http://vulndetector.com\\/
Remediation
Upgrade org.eclipse.jetty:jetty-http to version 9.4.57.v20241219, 12.0.12 or higher.
References
medium severity
- Vulnerable module: org.eclipse.jetty:jetty-server
- Introduced through: org.eclipse.jetty:jetty-server@8.1.15.v20140411 and org.eclipse.jetty:jetty-servlet@8.1.15.v20140411
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.eclipse.jetty:jetty-server@8.1.15.v20140411Remediation: Upgrade to org.eclipse.jetty:jetty-server@9.4.57.v20241219.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.eclipse.jetty:jetty-servlet@8.1.15.v20140411 › org.eclipse.jetty:jetty-security@8.1.10.v20130312 › org.eclipse.jetty:jetty-server@8.1.15.v20140411Remediation: Upgrade to org.eclipse.jetty:jetty-servlet@9.4.57.v20241219.
Overview
org.eclipse.jetty:jetty-server is a lightweight highly scalable java based web server and servlet engine.
Affected versions of this package are vulnerable to Improper Validation of Syntactic Correctness of Input via the HttpURI class due to insufficient validation on the authority segment of a URI. An attacker can manipulate the URI parsing to redirect requests or initiate server-side requests to unintended destinations by supplying malformed URIs that bypass validation checks.
Notes:
This is only exploitable if the application uses decoded user data as encoded URIs in conjunction with the
HttpURIclass used directly;The Jetty usage of the
HttpURIclass is not vulnerable.
Workaround
This vulnerability can be mitigated by not passing decoded user data as encoded URIs to any URI class/method, including HttpURI.
PoC
http://browser.check &@vulndetector.com/
http://browser.check #@vulndetector.com/
http://browser.check?@vulndetector.com/
http://browser.check#@vulndetector.com/
http://vulndetector.com\\/
Remediation
Upgrade org.eclipse.jetty:jetty-server to version 9.4.57.v20241219, 12.0.12 or higher.
References
medium severity
- Vulnerable module: org.apache.hadoop:hadoop-hdfs
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › org.apache.hadoop:hadoop-hdfs@2.2.0Remediation: Upgrade to org.apache.solr:solr-core@6.2.0.
Overview
org.apache.hadoop:hadoop-hdfs is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models.
Affected versions of this package are vulnerable to Cross-site Scripting (XSS) attack through an unescaped query parameter.
Details
Cross-site scripting (or XSS) is a code vulnerability that occurs when an attacker “injects” a malicious script into an otherwise trusted website. The injected script gets downloaded and executed by the end user’s browser when the user interacts with the compromised website.
This is done by escaping the context of the web application; the web application then delivers that data to its users along with other trusted dynamic content, without validating it. The browser unknowingly executes malicious script on the client side (through client-side languages; usually JavaScript or HTML) in order to perform actions that are otherwise typically blocked by the browser’s Same Origin Policy.
Injecting malicious code is the most prevalent manner by which XSS is exploited; for this reason, escaping characters in order to prevent this manipulation is the top method for securing code against this vulnerability.
Escaping means that the application is coded to mark key characters, and particularly key characters included in user input, to prevent those characters from being interpreted in a dangerous context. For example, in HTML, < can be coded as < and > can be coded as > in order to be interpreted and displayed as themselves in text, while within the code itself, they are used for HTML tags. If malicious content is injected into an application that escapes special characters and that malicious content uses < and > as HTML tags, those characters are nonetheless not interpreted as HTML tags by the browser if they’ve been correctly escaped in the application code and in this way the attempted attack is diverted.
The most prominent use of XSS is to steal cookies (source: OWASP HttpOnly) and hijack user sessions, but XSS exploits have been used to expose sensitive information, enable access to privileged services and functionality and deliver malware.
Types of attacks
There are a few methods by which XSS can be manipulated:
| Type | Origin | Description |
|---|---|---|
| Stored | Server | The malicious code is inserted in the application (usually as a link) by the attacker. The code is activated every time a user clicks the link. |
| Reflected | Server | The attacker delivers a malicious link externally from the vulnerable web site application to a user. When clicked, malicious code is sent to the vulnerable web site, which reflects the attack back to the user’s browser. |
| DOM-based | Client | The attacker forces the user’s browser to render a malicious page. The data in the page itself delivers the cross-site scripting data. |
| Mutated | The attacker injects code that appears safe, but is then rewritten and modified by the browser, while parsing the markup. An example is rebalancing unclosed quotation marks or even adding quotation marks to unquoted parameters. |
Affected environments
The following environments are susceptible to an XSS attack:
- Web servers
- Application servers
- Web application environments
How to prevent
This section describes the top best practices designed to specifically protect your code:
- Sanitize data input in an HTTP request before reflecting it back, ensuring all data is validated, filtered or escaped before echoing anything back to the user, such as the values of query parameters during searches.
- Convert special characters such as
?,&,/,<,>and spaces to their respective HTML or URL encoded equivalents. - Give users the option to disable client-side scripts.
- Redirect invalid requests.
- Detect simultaneous logins, including those from two separate IP addresses, and invalidate those sessions.
- Use and enforce a Content Security Policy (source: Wikipedia) to disable any features that might be manipulated for an XSS attack.
- Read the documentation for any of the libraries referenced in your code to understand which elements allow for embedded HTML.
Remediation
Upgrade org.apache.hadoop:hadoop-hdfs to version 2.7.0 or higher.
References
medium severity
- Vulnerable module: org.apache.solr:solr
- Introduced through: org.apache.solr:solr@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr@4.8.0
Overview
org.apache.solr:solr
Multiple cross-site scripting (XSS) vulnerabilities in the Admin UI in Apache Solr before 5.1 allow remote attackers to inject arbitrary web script or HTML via crafted fields that are mishandled during the rendering of the (1) Analysis page, related to webapp/web/js/scripts/analysis.js or (2) Schema-Browser page, related to webapp/web/js/scripts/schema-browser.js.
Details
<
References
medium severity
- Vulnerable module: org.apache.solr:solr
- Introduced through: org.apache.solr:solr@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr@4.8.0
Overview
org.apache.solr:solr
Cross-site Scripting (XSS) vulnerability in webapp/web/js/scripts/plugins.js in the stats page in the Admin UI in Apache Solr before 5.3.1 allows remote attackers to inject arbitrary web script or HTML via the entry parameter to a plugins/cache URI.
Details
<
References
medium severity
- Vulnerable module: com.google.guava:guava
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › com.google.guava:guava@14.0.1Remediation: Upgrade to org.apache.solr:solr-core@8.1.0.
Overview
com.google.guava:guava is a set of core libraries that includes new collection types (such as multimap and multiset,immutable collections, a graph library, functional types, an in-memory cache and more.
Affected versions of this package are vulnerable to Deserialization of Untrusted Data. During deserialization, two Guava classes accept a caller-specified size parameter and eagerly allocate an array of that size:
AtomicDoubleArray(when serialized with Java serialization)CompoundOrdering(when serialized with GWT serialization)
An attacker may be able to send a specially crafted request which with then cause the server to allocate all it's memory, without validation whether the data size is reasonable.
Details
Serialization is a process of converting an object into a sequence of bytes which can be persisted to a disk or database or can be sent through streams. The reverse process of creating object from sequence of bytes is called deserialization. Serialization is commonly used for communication (sharing objects between multiple hosts) and persistence (store the object state in a file or a database). It is an integral part of popular protocols like Remote Method Invocation (RMI), Java Management Extension (JMX), Java Messaging System (JMS), Action Message Format (AMF), Java Server Faces (JSF) ViewState, etc.
Deserialization of untrusted data (CWE-502), is when the application deserializes untrusted data without sufficiently verifying that the resulting data will be valid, letting the attacker to control the state or the flow of the execution.
Java deserialization issues have been known for years. However, interest in the issue intensified greatly in 2015, when classes that could be abused to achieve remote code execution were found in a popular library (Apache Commons Collection). These classes were used in zero-days affecting IBM WebSphere, Oracle WebLogic and many other products.
An attacker just needs to identify a piece of software that has both a vulnerable class on its path, and performs deserialization on untrusted data. Then all they need to do is send the payload into the deserializer, getting the command executed.
Developers put too much trust in Java Object Serialization. Some even de-serialize objects pre-authentication. When deserializing an Object in Java you typically cast it to an expected type, and therefore Java's strict type system will ensure you only get valid object trees. Unfortunately, by the time the type checking happens, platform code has already created and executed significant logic. So, before the final type is checked a lot of code is executed from the readObject() methods of various objects, all of which is out of the developer's control. By combining the readObject() methods of various classes which are available on the classpath of the vulnerable application, an attacker can execute functions (including calling Runtime.exec() to execute local OS commands).
Remediation
Upgrade com.google.guava:guava to version 24.1.1, 24.1.1-jre or higher.
References
medium severity
- Vulnerable module: log4j:log4j
- Introduced through: log4j:log4j@1.2.17, org.apache.solr:solr-solrj@4.8.0 and others
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › log4j:log4j@1.2.17
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-solrj@4.8.0 › log4j:log4j@1.2.17
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.slf4j:slf4j-log4j12@1.7.7 › log4j:log4j@1.2.17
Overview
log4j:log4j is a 1.x branch of the Apache Log4j project. Note: Log4j 1.x reached End of Life in 2015, and is no longer supported.
Affected versions of this package are vulnerable to Denial of Service (DoS). When using the Chainsaw or SocketAppender components with Log4j 1.x on JRE less than 1.7, an attacker that manages to cause a logging entry involving a specially-crafted, deeply nested hashmap or hashtable (depending on which logging component is in use) to be processed could exhaust the available memory in the virtual machine and achieve denial of service when the object is deserialized.
This issue affects Apache Log4j before 2. Affected users are recommended to update to Log4j 2.x org.apache.logging.log4j/log4j-core.
NOTE: This vulnerability only affects products that are no longer supported by the maintainer.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
There is no fixed version for log4j:log4j.
References
medium severity
- Vulnerable module: org.apache.solr:solr-core
- Introduced through: org.apache.solr:solr-core@4.8.0, org.apache.solr:solr@4.8.0 and others
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-core@8.11.1.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr@4.8.0 › org.apache.solr:solr-core@4.8.0
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-analysis-extras@4.8.0 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-analysis-extras@8.11.1.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-cell@8.11.1.
Overview
org.apache.solr:solr-core is an open source enterprise search platform built on Apache Lucene
Affected versions of this package are vulnerable to Improper Input Validation in DataImportHandler, which allows an attacker to provide a Windows UNC path resulting in an SMB network call being made from the Solr host to another host on the network. If the attacker has wider access to the network, this may lead to SMB attacks, which may result in the exfiltration of sensitive data such as OS user hashes (NTLM/LM hashes). In case of misconfigured systems, SMB relay attacks can lead to user impersonation on SMB Shares or, in a worse-case scenario, Remote Code Execution.
Remediation
Upgrade org.apache.solr:solr-core to version 8.11.1 or higher.
References
medium severity
- Vulnerable module: org.apache.tika:tika-core
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.tika:tika-core@1.5Remediation: Upgrade to org.apache.solr:solr-cell@8.11.3.
Overview
org.apache.tika:tika-core is a toolkit for detecting and extracting metadata and structured text content from various documents using existing parser libraries.
Affected versions of this package are vulnerable to Regular Expression Denial of Service (ReDoS) via a specially crafted file, when being parsed by the StandardsText class, which is used by StandardsExtractingContentHandler.
Note:
This only affects users who are running the StandardsExtractingContentHandler, which is a non-standard handler.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its original and legitimate users. There are many types of DoS attacks, ranging from trying to clog the network pipes to the system by generating a large volume of traffic from many machines (a Distributed Denial of Service - DDoS - attack) to sending crafted requests that cause a system to crash or take a disproportional amount of time to process.
The Regular expression Denial of Service (ReDoS) is a type of Denial of Service attack. Regular expressions are incredibly powerful, but they aren't very intuitive and can ultimately end up making it easy for attackers to take your site down.
Let’s take the following regular expression as an example:
regex = /A(B|C+)+D/
This regular expression accomplishes the following:
AThe string must start with the letter 'A'(B|C+)+The string must then follow the letter A with either the letter 'B' or some number of occurrences of the letter 'C' (the+matches one or more times). The+at the end of this section states that we can look for one or more matches of this section.DFinally, we ensure this section of the string ends with a 'D'
The expression would match inputs such as ABBD, ABCCCCD, ABCBCCCD and ACCCCCD
It most cases, it doesn't take very long for a regex engine to find a match:
$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCD")'
0.04s user 0.01s system 95% cpu 0.052 total
$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCX")'
1.79s user 0.02s system 99% cpu 1.812 total
The entire process of testing it against a 30 characters long string takes around ~52ms. But when given an invalid string, it takes nearly two seconds to complete the test, over ten times as long as it took to test a valid string. The dramatic difference is due to the way regular expressions get evaluated.
Most Regex engines will work very similarly (with minor differences). The engine will match the first possible way to accept the current character and proceed to the next one. If it then fails to match the next one, it will backtrack and see if there was another way to digest the previous character. If it goes too far down the rabbit hole only to find out the string doesn’t match in the end, and if many characters have multiple valid regex paths, the number of backtracking steps can become very large, resulting in what is known as catastrophic backtracking.
Let's look at how our expression runs into this problem, using a shorter string: "ACCCX". While it seems fairly straightforward, there are still four different ways that the engine could match those three C's:
- CCC
- CC+C
- C+CC
- C+C+C.
The engine has to try each of those combinations to see if any of them potentially match against the expression. When you combine that with the other steps the engine must take, we can use RegEx 101 debugger to see the engine has to take a total of 38 steps before it can determine the string doesn't match.
From there, the number of steps the engine must use to validate a string just continues to grow.
| String | Number of C's | Number of steps |
|---|---|---|
| ACCCX | 3 | 38 |
| ACCCCX | 4 | 71 |
| ACCCCCX | 5 | 136 |
| ACCCCCCCCCCCCCCX | 14 | 65,553 |
By the time the string includes 14 C's, the engine has to take over 65,000 steps just to see if the string is valid. These extreme situations can cause them to work very slowly (exponentially related to input size, as shown above), allowing an attacker to exploit this and can cause the service to excessively consume CPU, resulting in a Denial of Service.
Remediation
Upgrade org.apache.tika:tika-core to version 1.28.3, 2.4.0 or higher.
References
medium severity
- Vulnerable module: com.google.protobuf:protobuf-java
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › com.google.protobuf:protobuf-java@2.5.0Remediation: Upgrade to org.apache.solr:solr-core@9.0.0.
Overview
com.google.protobuf:protobuf-java is a Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data.
Affected versions of this package are vulnerable to Denial of Service (DoS) via the parsing procedure for binary and text format data. Input streams containing multiple instances of non-repeated embedded messages with repeated or unknown fields cause objects to be converted back and forth between mutable and immutable forms, resulting in potentially long garbage collection pauses.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade com.google.protobuf:protobuf-java to version 3.16.3, 3.19.6, 3.20.3, 3.21.7 or higher.
References
medium severity
- Vulnerable module: com.drewnoakes:metadata-extractor
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › com.drewnoakes:metadata-extractor@2.6.2Remediation: Upgrade to org.apache.solr:solr-cell@8.7.0.
Overview
com.drewnoakes:metadata-extractor is a Java library for reading metadata from image files.
Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling due to uncaught exceptions while parsing a specially crafted JPEG file, which could result in an application crash.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade com.drewnoakes:metadata-extractor to version 2.18.0 or higher.
References
medium severity
- Vulnerable module: com.drewnoakes:metadata-extractor
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › com.drewnoakes:metadata-extractor@2.6.2Remediation: Upgrade to org.apache.solr:solr-cell@8.7.0.
Overview
com.drewnoakes:metadata-extractor is a Java library for reading metadata from image files.
Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling via a specially crafted JPEG file, that when read can be made to allocate large amounts of memory that finally leads to an out-of-memory error even for very small inputs.
Remediation
Upgrade com.drewnoakes:metadata-extractor to version 2.18.0 or higher.
References
medium severity
- Vulnerable module: org.apache.commons:commons-compress
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.commons:commons-compress@1.7Remediation: Upgrade to org.apache.solr:solr-cell@7.5.0.
Overview
org.apache.commons:commons-compress is an API for working with compression and archive formats.
Affected versions of this package are vulnerable to Denial of Service (DoS). When reading a specially crafted ZIP archive, the read method might fail to return the correct EOF indication after the end of the stream has been reached. If it combined with a java.io.InputStreamReader, it can lead to an infinite stream, which can be used to mount a denial of service attack against services that use Compress' zip package.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its original and legitimate users. There are many types of DoS attacks, ranging from trying to clog the network pipes to the system by generating a large volume of traffic from many machines (a Distributed Denial of Service - DDoS - attack) to sending crafted requests that cause a system to crash or take a disproportional amount of time to process.
The Regular expression Denial of Service (ReDoS) is a type of Denial of Service attack. Regular expressions are incredibly powerful, but they aren't very intuitive and can ultimately end up making it easy for attackers to take your site down.
Let’s take the following regular expression as an example:
regex = /A(B|C+)+D/
This regular expression accomplishes the following:
AThe string must start with the letter 'A'(B|C+)+The string must then follow the letter A with either the letter 'B' or some number of occurrences of the letter 'C' (the+matches one or more times). The+at the end of this section states that we can look for one or more matches of this section.DFinally, we ensure this section of the string ends with a 'D'
The expression would match inputs such as ABBD, ABCCCCD, ABCBCCCD and ACCCCCD
It most cases, it doesn't take very long for a regex engine to find a match:
$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCD")'
0.04s user 0.01s system 95% cpu 0.052 total
$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCX")'
1.79s user 0.02s system 99% cpu 1.812 total
The entire process of testing it against a 30 characters long string takes around ~52ms. But when given an invalid string, it takes nearly two seconds to complete the test, over ten times as long as it took to test a valid string. The dramatic difference is due to the way regular expressions get evaluated.
Most Regex engines will work very similarly (with minor differences). The engine will match the first possible way to accept the current character and proceed to the next one. If it then fails to match the next one, it will backtrack and see if there was another way to digest the previous character. If it goes too far down the rabbit hole only to find out the string doesn’t match in the end, and if many characters have multiple valid regex paths, the number of backtracking steps can become very large, resulting in what is known as catastrophic backtracking.
Let's look at how our expression runs into this problem, using a shorter string: "ACCCX". While it seems fairly straightforward, there are still four different ways that the engine could match those three C's:
- CCC
- CC+C
- C+CC
- C+C+C.
The engine has to try each of those combinations to see if any of them potentially match against the expression. When you combine that with the other steps the engine must take, we can use RegEx 101 debugger to see the engine has to take a total of 38 steps before it can determine the string doesn't match.
From there, the number of steps the engine must use to validate a string just continues to grow.
| String | Number of C's | Number of steps |
|---|---|---|
| ACCCX | 3 | 38 |
| ACCCCX | 4 | 71 |
| ACCCCCX | 5 | 136 |
| ACCCCCCCCCCCCCCX | 14 | 65,553 |
By the time the string includes 14 C's, the engine has to take over 65,000 steps just to see if the string is valid. These extreme situations can cause them to work very slowly (exponentially related to input size, as shown above), allowing an attacker to exploit this and can cause the service to excessively consume CPU, resulting in a Denial of Service.
Remediation
Upgrade org.apache.commons:commons-compress to version 1.18-RC1 or higher.
References
medium severity
- Vulnerable module: org.apache.hadoop:hadoop-hdfs
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › org.apache.hadoop:hadoop-hdfs@2.2.0Remediation: Upgrade to org.apache.solr:solr-core@6.2.0.
Overview
org.apache.hadoop:hadoop-hdfs is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models.
Affected versions of this package are vulnerable to Information Exposure via the short-circuit reads feature of HDFS. A local user on an HDFS DataNode may be able to craft a block token that grants unauthorized read access to random files by guessing certain fields in the token.
Remediation
Upgrade org.apache.hadoop:hadoop-hdfs to version 2.6.4, 2.7.2 or higher.
References
medium severity
- Vulnerable module: org.apache.pdfbox:fontbox
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.pdfbox:fontbox@1.8.4Remediation: Upgrade to org.apache.solr:solr-cell@7.6.0.
Overview
org.apache.pdfbox:fontbox is an open source Java tool for working with PDF fonts.
Affected versions of this package are vulnerable to Denial of Service (DoS) attacks. A carefully crafted (or fuzzed) file can trigger an infinite loop which leads to an out of memory exception in Apache PDFBox's AFMParser.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade to versions 1.8.15, 2.0.11 or higher.
References
medium severity
- Vulnerable module: org.apache.poi:poi
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.poi:poi@3.10-beta2Remediation: Upgrade to org.apache.solr:solr-cell@7.3.0.
Overview
org.apache.poi:poi is a java library for reading and writing Microsoft Office binary and OOXML file formats.
Affected versions of this package are vulnerable to XML External Entity (XXE) Injection as it allows remote attackers to cause a denial of service (CPU consumption) via a specially crafted OOXML file, aka an XML Entity Expansion (XEE) attack.
Details
XXE Injection is a type of attack against an application that parses XML input. XML is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. By default, many XML processors allow specification of an external entity, a URI that is dereferenced and evaluated during XML processing. When an XML document is being parsed, the parser can make a request and include the content at the specified URI inside of the XML document.
Attacks can include disclosing local files, which may contain sensitive data such as passwords or private user data, using file: schemes or relative paths in the system identifier.
For example, below is a sample XML document, containing an XML element- username.
<xml>
<?xml version="1.0" encoding="ISO-8859-1"?>
<username>John</username>
</xml>
An external XML entity - xxe, is defined using a system identifier and present within a DOCTYPE header. These entities can access local or remote content. For example the below code contains an external XML entity that would fetch the content of /etc/passwd and display it to the user rendered by username.
<xml>
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<username>&xxe;</username>
</xml>
Other XXE Injection attacks can access local resources that may not stop returning data, possibly impacting application availability and leading to Denial of Service.
Remediation
Upgrade org.apache.poi:poi to version 3.15 or higher.
References
medium severity
- Vulnerable module: org.apache.poi:poi-ooxml
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.poi:poi-ooxml@3.10-beta2Remediation: Upgrade to org.apache.solr:solr-cell@7.3.0.
Overview
org.apache.poi:poi-ooxml is a Java API To Access Microsoft Format Files.
Affected versions of this package are vulnerable to XML External Entity (XXE) Injection as it allows remote attackers to cause a denial of service (CPU consumption) via a specially crafted OOXML file, aka an XML Entity Expansion (XEE) attack.
Details
XXE Injection is a type of attack against an application that parses XML input. XML is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. By default, many XML processors allow specification of an external entity, a URI that is dereferenced and evaluated during XML processing. When an XML document is being parsed, the parser can make a request and include the content at the specified URI inside of the XML document.
Attacks can include disclosing local files, which may contain sensitive data such as passwords or private user data, using file: schemes or relative paths in the system identifier.
For example, below is a sample XML document, containing an XML element- username.
<xml>
<?xml version="1.0" encoding="ISO-8859-1"?>
<username>John</username>
</xml>
An external XML entity - xxe, is defined using a system identifier and present within a DOCTYPE header. These entities can access local or remote content. For example the below code contains an external XML entity that would fetch the content of /etc/passwd and display it to the user rendered by username.
<xml>
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<username>&xxe;</username>
</xml>
Other XXE Injection attacks can access local resources that may not stop returning data, possibly impacting application availability and leading to Denial of Service.
Remediation
Upgrade org.apache.poi:poi-ooxml to version 3.15 or higher.
References
medium severity
- Vulnerable module: org.apache.solr:solr-core
- Introduced through: org.apache.solr:solr-core@4.8.0, org.apache.solr:solr@4.8.0 and others
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-core@6.6.5.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr@4.8.0 › org.apache.solr:solr-core@4.8.0
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-analysis-extras@4.8.0 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-analysis-extras@6.6.5.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-cell@6.6.5.
Overview
org.apache.solr:solr-core is an enterprise search platform written using Apache Lucene.
Affected versions of this package are vulnerable to XML External Entity (XXE) Injection. It can be used as XXE using the file/ftp/http protocols in order to read arbitrary local files from the server or the internal network. The manipulated files can be uploaded as config sets using solr's API, allowing to exploit that vulnerability.
Details
XXE Injection is a type of attack against an application that parses XML input. XML is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. By default, many XML processors allow specification of an external entity, a URI that is dereferenced and evaluated during XML processing. When an XML document is being parsed, the parser can make a request and include the content at the specified URI inside of the XML document.
Attacks can include disclosing local files, which may contain sensitive data such as passwords or private user data, using file: schemes or relative paths in the system identifier.
For example, below is a sample XML document, containing an XML element- username.
<?xml version="1.0" encoding="ISO-8859-1"?>
<username>John</username>
</xml>
An external XML entity - xxe, is defined using a system identifier and present within a DOCTYPE header. These entities can access local or remote content. For example the below code contains an external XML entity that would fetch the content of /etc/passwd and display it to the user rendered by username.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<username>&xxe;</username>
</xml>
Other XXE Injection attacks can access local resources that may not stop returning data, possibly impacting application availability and leading to Denial of Service.
Remediation
Upgrade org.apache.solr:solr-core to versions 6.6.5, 7.4 or higher.
References
medium severity
- Vulnerable module: org.apache.tika:tika-parsers
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.tika:tika-parsers@1.5Remediation: Upgrade to org.apache.solr:solr-cell@8.10.1.
Overview
org.apache.tika:tika-parsers is a toolkit for detecting and extracting metadata and structured text content from various documents using existing parser libraries.
Affected versions of this package are vulnerable to Denial of Service (DoS) via the MP3Parser.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade org.apache.tika:tika-parsers to version 1.26 or higher.
References
medium severity
- Vulnerable module: org.apache.tika:tika-parsers
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.tika:tika-parsers@1.5Remediation: Upgrade to org.apache.solr:solr-cell@7.5.0.
Overview
org.apache.tika:tika-parsers is a toolkit for detecting and extracting metadata and structured text content from various documents using existing parser libraries.
Affected versions of this package are vulnerable to Denial of Service (DoS) attacks. A carefully crafted (or fuzzed) file can trigger an infinite loop via the BPGParser.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade org.apache.tika:tika-parsers to version 1.18 or higher.
References
medium severity
- Vulnerable module: org.apache.tika:tika-parsers
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.tika:tika-parsers@1.5Remediation: Upgrade to org.apache.solr:solr-cell@7.5.0.
Overview
org.apache.tika:tika-parsers is a toolkit for detecting and extracting metadata and structured text content from various documents using existing parser libraries.
Affected versions of this package are vulnerable to Denial of Service (DoS)
via a carefully crafted (or fuzzed) file can trigger an infinite loop via the ChmParser.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade org.apache.tika:tika-parsers to version 1.18 or higher.
References
medium severity
- Vulnerable module: org.apache.tika:tika-parsers
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.tika:tika-parsers@1.5Remediation: Upgrade to org.apache.solr:solr-cell@7.6.0.
Overview
org.apache.tika:tika-parsers is a toolkit for detecting and extracting metadata and structured text content from various documents using existing parser libraries.
Affected versions of this package are vulnerable to Denial of Service (DoS). A carefully crafted file can trigger an infinite loop in the IptcAnpaParser.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade org.apache.tika:tika-parsers to version 1.19 or higher.
References
medium severity
- Vulnerable module: commons-httpclient:commons-httpclient
- Introduced through: commons-httpclient:commons-httpclient@3.1
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › commons-httpclient:commons-httpclient@3.1
Overview
commons-httpclient:commons-httpclient is a HttpClient component of the Apache HttpComponents project.
Affected versions of this package are vulnerable to Improper Certificate Validation due to not verifying that the requesting server hostname matches a domain name in the subject's Common Name (CN) or subjectAltName field of the X.509 certificate. This allows man-in-the-middle attackers to spoof SSL servers via an arbitrary valid certificate.
NOTE: This plugin has been deprecated, but a fix has been released in version 3.1-jenkins-3 on a special Jenkins fork of the project.
Remediation
Upgrade commons-httpclient:commons-httpclient to version 3.1-jenkins-1 or higher.
References
medium severity
- Vulnerable module: org.apache.httpcomponents:httpclient
- Introduced through: org.apache.solr:solr-solrj@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-solrj@4.8.0 › org.apache.httpcomponents:httpclient@4.3.1Remediation: Upgrade to org.apache.solr:solr-solrj@5.2.0.
Overview
org.apache.httpcomponents:httpclient is an HttpClient component of the Apache HttpComponents project.
Affected versions of this package are vulnerable to Man-in-the-Middle (MitM) due to not verify the requesting server's hostname against existing domain names in the SSL Certificate.
The AbstractVerifier does not properly verify that the server hostname matches a domain name in the subject's Common Name (CN) or subjectAltName field of the X.509 certificate, which allows man-in-the-middle attackers to spoof SSL servers via a "CN=" string in a field in the distinguished name (DN) of a certificate, as demonstrated by the "foo,CN=www.apache.org" string in the O field.
Details
Remediation
Upgrade org.apache.httpcomponents:httpclient to version 4.3.4 or higher.
References
medium severity
- Vulnerable module: org.apache.solr:solr-core
- Introduced through: org.apache.solr:solr-core@4.8.0, org.apache.solr:solr@4.8.0 and others
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-core@8.6.0.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr@4.8.0 › org.apache.solr:solr-core@4.8.0
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-analysis-extras@4.8.0 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-analysis-extras@8.6.0.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-cell@8.6.0.
Overview
org.apache.solr:solr-core is an open source enterprise search platform built on Apache Lucene
Affected versions of this package are vulnerable to Arbitrary File Access. The Replication handler allows commands backup, restore and deleteBackup that take unvalidated alocation parameter, i.e you could read/write to any location the solr user can access. Launching SMB attacks which may result in the exfiltration of sensitive data such as OS user hashes (NTLM/LMhashes). In case of misconfigured systems, SMB Relay Attacks which can lead to user impersonation on SMB Shares or, in a worse-case scenario, Remote Code Execution.
Remediation
Upgrade org.apache.solr:solr-core to version 8.6.0 or higher.
References
medium severity
- Vulnerable module: commons-io:commons-io
- Introduced through: commons-io:commons-io@2.1 and org.apache.solr:solr-solrj@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › commons-io:commons-io@2.1Remediation: Upgrade to commons-io:commons-io@2.7.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-solrj@4.8.0 › commons-io:commons-io@2.1Remediation: Upgrade to org.apache.solr:solr-solrj@8.7.0.
Overview
commons-io:commons-io is a The Apache Commons IO library contains utility classes, stream implementations, file filters, file comparators, endian transformation classes, and much more.
Affected versions of this package are vulnerable to Directory Traversal via calling the method FileNameUtils.normalize using an improper string like //../foo or \\..\foo, which may allow access to files in the parent directory.
Details
A Directory Traversal attack (also known as path traversal) aims to access files and directories that are stored outside the intended folder. By manipulating files with "dot-dot-slash (../)" sequences and its variations, or by using absolute file paths, it may be possible to access arbitrary files and directories stored on file system, including application source code, configuration, and other critical system files.
Directory Traversal vulnerabilities can be generally divided into two types:
- Information Disclosure: Allows the attacker to gain information about the folder structure or read the contents of sensitive files on the system.
st is a module for serving static files on web pages, and contains a vulnerability of this type. In our example, we will serve files from the public route.
If an attacker requests the following URL from our server, it will in turn leak the sensitive private key of the root user.
curl http://localhost:8080/public/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/root/.ssh/id_rsa
Note %2e is the URL encoded version of . (dot).
- Writing arbitrary files: Allows the attacker to create or replace existing files. This type of vulnerability is also known as
Zip-Slip.
One way to achieve this is by using a malicious zip archive that holds path traversal filenames. When each filename in the zip archive gets concatenated to the target extraction folder, without validation, the final path ends up outside of the target folder. If an executable or a configuration file is overwritten with a file containing malicious code, the problem can turn into an arbitrary code execution issue quite easily.
The following is an example of a zip archive with one benign file and one malicious file. Extracting the malicious file will result in traversing out of the target folder, ending up in /root/.ssh/ overwriting the authorized_keys file:
2018-04-15 22:04:29 ..... 19 19 good.txt
2018-04-15 22:04:42 ..... 20 20 ../../../../../../root/.ssh/authorized_keys
Remediation
Upgrade commons-io:commons-io to version 2.7 or higher.
References
medium severity
- Vulnerable module: org.apache.httpcomponents:httpclient
- Introduced through: org.apache.solr:solr-solrj@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-solrj@4.8.0 › org.apache.httpcomponents:httpclient@4.3.1Remediation: Upgrade to org.apache.solr:solr-solrj@7.1.0.
Overview
org.apache.httpcomponents:httpclient is a HttpClient component of the Apache HttpComponents project.
Affected versions of this package are vulnerable to Directory Traversal.
String input by user is not validated for the presence of leading character / and is passed to the constructor as path information, resulting in a Directory Traversal vulnerability.
Details
A Directory Traversal attack (also known as path traversal) aims to access files and directories that are stored outside the intended folder. By manipulating files with "dot-dot-slash (../)" sequences and its variations, or by using absolute file paths, it may be possible to access arbitrary files and directories stored on file system, including application source code, configuration, and other critical system files.
Directory Traversal vulnerabilities can be generally divided into two types:
- Information Disclosure: Allows the attacker to gain information about the folder structure or read the contents of sensitive files on the system.
st is a module for serving static files on web pages, and contains a vulnerability of this type. In our example, we will serve files from the public route.
If an attacker requests the following URL from our server, it will in turn leak the sensitive private key of the root user.
curl http://localhost:8080/public/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/root/.ssh/id_rsa
Note %2e is the URL encoded version of . (dot).
- Writing arbitrary files: Allows the attacker to create or replace existing files. This type of vulnerability is also known as
Zip-Slip.
One way to achieve this is by using a malicious zip archive that holds path traversal filenames. When each filename in the zip archive gets concatenated to the target extraction folder, without validation, the final path ends up outside of the target folder. If an executable or a configuration file is overwritten with a file containing malicious code, the problem can turn into an arbitrary code execution issue quite easily.
The following is an example of a zip archive with one benign file and one malicious file. Extracting the malicious file will result in traversing out of the target folder, ending up in /root/.ssh/ overwriting the authorized_keys file:
2018-04-15 22:04:29 ..... 19 19 good.txt
2018-04-15 22:04:42 ..... 20 20 ../../../../../../root/.ssh/authorized_keys
Remediation
Upgrade org.apache.httpcomponents:httpclient to version 4.5.3 or higher.
References
medium severity
- Vulnerable module: org.apache.httpcomponents:httpclient
- Introduced through: org.apache.solr:solr-solrj@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-solrj@4.8.0 › org.apache.httpcomponents:httpclient@4.3.1Remediation: Upgrade to org.apache.solr:solr-solrj@8.10.1.
Overview
org.apache.httpcomponents:httpclient is a HttpClient component of the Apache HttpComponents project.
Affected versions of this package are vulnerable to Improper Input Validation. Apache HttpClient can misinterpret malformed authority component in request URIs passed to the library as java.net.URI object and pick the wrong target host for request execution.
Remediation
Upgrade org.apache.httpcomponents:httpclient to version 4.5.13 or higher.
References
medium severity
- Vulnerable module: org.apache.james:apache-mime4j-core
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.james:apache-mime4j-core@0.7.2
Overview
Affected versions of this package are vulnerable to Header Injection. An attacker can add unintended headers to MIME messages via the MIME4J DOM.
Remediation
Upgrade org.apache.james:apache-mime4j-core to version 0.8.10 or higher.
References
medium severity
- Vulnerable module: org.apache.poi:poi
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.poi:poi@3.10-beta2Remediation: Upgrade to org.apache.solr:solr-cell@7.3.0.
Overview
org.apache.poi:poi is a java library for reading and writing Microsoft Office binary and OOXML file formats.
Affected versions of this package are vulnerable to Denial of Service (DoS). The calculation of dataSize in Ole10Native's initialization is faulty, causing the code to allocate a large buffer and resulting in Out-Of-Memory.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade org.apache.poi:poi to version 3.16-beta1 or higher.
References
medium severity
- Vulnerable module: org.apache.poi:poi-scratchpad
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.poi:poi-scratchpad@3.10-beta2Remediation: Upgrade to org.apache.solr:solr-cell@5.0.0.
Overview
org.apache.poi:poi-scratchpad is a Java API To Access Microsoft Format Files
Affected versions of this package are vulnerable to Denial of Service (DoS). HSLFSlideShow allows remote attackers to cause a denial of service (infinite loop and deadlock) via a crafted PPT file.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade org.apache.poi:poi-scratchpad to version 3.11 or higher.
References
medium severity
- Vulnerable module: org.apache.solr:solr-core
- Introduced through: org.apache.solr:solr-core@4.8.0, org.apache.solr:solr@4.8.0 and others
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-core@8.8.2.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr@4.8.0 › org.apache.solr:solr-core@4.8.0
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-analysis-extras@4.8.0 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-analysis-extras@8.8.2.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-cell@8.8.2.
Overview
org.apache.solr:solr-core is an open source enterprise search platform built on Apache Lucene
Affected versions of this package are vulnerable to Access Restriction Bypass. When using ConfigurableInternodeAuthHadoopPlugin for authentication, Solr forwards/proxies distributed requests using server credentials instead of original client credentials. This results in incorrect authorization resolution on the receiving hosts.
Remediation
Upgrade org.apache.solr:solr-core to version 8.8.2 or higher.
References
medium severity
- Vulnerable module: org.apache.tika:tika-core
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.tika:tika-core@1.5Remediation: Upgrade to org.apache.solr:solr-cell@8.11.3.
Overview
org.apache.tika:tika-core is a toolkit for detecting and extracting metadata and structured text content from various documents using existing parser libraries.
Affected versions of this package are vulnerable to Regular Expression Denial of Service (ReDoS) in the StandardsText class, used by the StandardsExtractingContentHandler. This is due to an incomplete fix for CVE-2022-30126.
Note: This only affects users who are running the StandardsExtractingContentHandler, which is a non-standard handler.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its original and legitimate users. There are many types of DoS attacks, ranging from trying to clog the network pipes to the system by generating a large volume of traffic from many machines (a Distributed Denial of Service - DDoS - attack) to sending crafted requests that cause a system to crash or take a disproportional amount of time to process.
The Regular expression Denial of Service (ReDoS) is a type of Denial of Service attack. Regular expressions are incredibly powerful, but they aren't very intuitive and can ultimately end up making it easy for attackers to take your site down.
Let’s take the following regular expression as an example:
regex = /A(B|C+)+D/
This regular expression accomplishes the following:
AThe string must start with the letter 'A'(B|C+)+The string must then follow the letter A with either the letter 'B' or some number of occurrences of the letter 'C' (the+matches one or more times). The+at the end of this section states that we can look for one or more matches of this section.DFinally, we ensure this section of the string ends with a 'D'
The expression would match inputs such as ABBD, ABCCCCD, ABCBCCCD and ACCCCCD
It most cases, it doesn't take very long for a regex engine to find a match:
$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCD")'
0.04s user 0.01s system 95% cpu 0.052 total
$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCX")'
1.79s user 0.02s system 99% cpu 1.812 total
The entire process of testing it against a 30 characters long string takes around ~52ms. But when given an invalid string, it takes nearly two seconds to complete the test, over ten times as long as it took to test a valid string. The dramatic difference is due to the way regular expressions get evaluated.
Most Regex engines will work very similarly (with minor differences). The engine will match the first possible way to accept the current character and proceed to the next one. If it then fails to match the next one, it will backtrack and see if there was another way to digest the previous character. If it goes too far down the rabbit hole only to find out the string doesn’t match in the end, and if many characters have multiple valid regex paths, the number of backtracking steps can become very large, resulting in what is known as catastrophic backtracking.
Let's look at how our expression runs into this problem, using a shorter string: "ACCCX". While it seems fairly straightforward, there are still four different ways that the engine could match those three C's:
- CCC
- CC+C
- C+CC
- C+C+C.
The engine has to try each of those combinations to see if any of them potentially match against the expression. When you combine that with the other steps the engine must take, we can use RegEx 101 debugger to see the engine has to take a total of 38 steps before it can determine the string doesn't match.
From there, the number of steps the engine must use to validate a string just continues to grow.
| String | Number of C's | Number of steps |
|---|---|---|
| ACCCX | 3 | 38 |
| ACCCCX | 4 | 71 |
| ACCCCCX | 5 | 136 |
| ACCCCCCCCCCCCCCX | 14 | 65,553 |
By the time the string includes 14 C's, the engine has to take over 65,000 steps just to see if the string is valid. These extreme situations can cause them to work very slowly (exponentially related to input size, as shown above), allowing an attacker to exploit this and can cause the service to excessively consume CPU, resulting in a Denial of Service.
Remediation
Upgrade org.apache.tika:tika-core to version 1.28.3 or higher.
References
medium severity
- Vulnerable module: org.apache.tika:tika-core
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.tika:tika-core@1.5Remediation: Upgrade to org.apache.solr:solr-cell@8.11.3.
Overview
org.apache.tika:tika-core is a toolkit for detecting and extracting metadata and structured text content from various documents using existing parser libraries.
Affected versions of this package are vulnerable to Regular Expression Denial of Service (ReDoS) due to incomplete fix of CVE-2022-30126 and CVE-2022-30973 for regexes in the StandardsExtractingContentHandler.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its original and legitimate users. There are many types of DoS attacks, ranging from trying to clog the network pipes to the system by generating a large volume of traffic from many machines (a Distributed Denial of Service - DDoS - attack) to sending crafted requests that cause a system to crash or take a disproportional amount of time to process.
The Regular expression Denial of Service (ReDoS) is a type of Denial of Service attack. Regular expressions are incredibly powerful, but they aren't very intuitive and can ultimately end up making it easy for attackers to take your site down.
Let’s take the following regular expression as an example:
regex = /A(B|C+)+D/
This regular expression accomplishes the following:
AThe string must start with the letter 'A'(B|C+)+The string must then follow the letter A with either the letter 'B' or some number of occurrences of the letter 'C' (the+matches one or more times). The+at the end of this section states that we can look for one or more matches of this section.DFinally, we ensure this section of the string ends with a 'D'
The expression would match inputs such as ABBD, ABCCCCD, ABCBCCCD and ACCCCCD
It most cases, it doesn't take very long for a regex engine to find a match:
$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCD")'
0.04s user 0.01s system 95% cpu 0.052 total
$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCX")'
1.79s user 0.02s system 99% cpu 1.812 total
The entire process of testing it against a 30 characters long string takes around ~52ms. But when given an invalid string, it takes nearly two seconds to complete the test, over ten times as long as it took to test a valid string. The dramatic difference is due to the way regular expressions get evaluated.
Most Regex engines will work very similarly (with minor differences). The engine will match the first possible way to accept the current character and proceed to the next one. If it then fails to match the next one, it will backtrack and see if there was another way to digest the previous character. If it goes too far down the rabbit hole only to find out the string doesn’t match in the end, and if many characters have multiple valid regex paths, the number of backtracking steps can become very large, resulting in what is known as catastrophic backtracking.
Let's look at how our expression runs into this problem, using a shorter string: "ACCCX". While it seems fairly straightforward, there are still four different ways that the engine could match those three C's:
- CCC
- CC+C
- C+CC
- C+C+C.
The engine has to try each of those combinations to see if any of them potentially match against the expression. When you combine that with the other steps the engine must take, we can use RegEx 101 debugger to see the engine has to take a total of 38 steps before it can determine the string doesn't match.
From there, the number of steps the engine must use to validate a string just continues to grow.
| String | Number of C's | Number of steps |
|---|---|---|
| ACCCX | 3 | 38 |
| ACCCCX | 4 | 71 |
| ACCCCCX | 5 | 136 |
| ACCCCCCCCCCCCCCX | 14 | 65,553 |
By the time the string includes 14 C's, the engine has to take over 65,000 steps just to see if the string is valid. These extreme situations can cause them to work very slowly (exponentially related to input size, as shown above), allowing an attacker to exploit this and can cause the service to excessively consume CPU, resulting in a Denial of Service.
Remediation
Upgrade org.apache.tika:tika-core to version 1.28.4, 2.4.1 or higher.
References
medium severity
- Vulnerable module: org.apache.tika:tika-parsers
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.tika:tika-parsers@1.5Remediation: Upgrade to org.apache.solr:solr-cell@8.6.0.
Overview
org.apache.tika:tika-parsers is a toolkit for detecting and extracting metadata and structured text content from various documents using existing parser libraries.
Affected versions of this package are vulnerable to Denial of Service (DoS). A carefully crafted or corrupt PSD file can cause an infinite loop in the PSDParser.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its original and legitimate users. There are many types of DoS attacks, ranging from trying to clog the network pipes to the system by generating a large volume of traffic from many machines (a Distributed Denial of Service - DDoS - attack) to sending crafted requests that cause a system to crash or take a disproportional amount of time to process.
The Regular expression Denial of Service (ReDoS) is a type of Denial of Service attack. Regular expressions are incredibly powerful, but they aren't very intuitive and can ultimately end up making it easy for attackers to take your site down.
Let’s take the following regular expression as an example:
regex = /A(B|C+)+D/
This regular expression accomplishes the following:
AThe string must start with the letter 'A'(B|C+)+The string must then follow the letter A with either the letter 'B' or some number of occurrences of the letter 'C' (the+matches one or more times). The+at the end of this section states that we can look for one or more matches of this section.DFinally, we ensure this section of the string ends with a 'D'
The expression would match inputs such as ABBD, ABCCCCD, ABCBCCCD and ACCCCCD
It most cases, it doesn't take very long for a regex engine to find a match:
$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCD")'
0.04s user 0.01s system 95% cpu 0.052 total
$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCX")'
1.79s user 0.02s system 99% cpu 1.812 total
The entire process of testing it against a 30 characters long string takes around ~52ms. But when given an invalid string, it takes nearly two seconds to complete the test, over ten times as long as it took to test a valid string. The dramatic difference is due to the way regular expressions get evaluated.
Most Regex engines will work very similarly (with minor differences). The engine will match the first possible way to accept the current character and proceed to the next one. If it then fails to match the next one, it will backtrack and see if there was another way to digest the previous character. If it goes too far down the rabbit hole only to find out the string doesn’t match in the end, and if many characters have multiple valid regex paths, the number of backtracking steps can become very large, resulting in what is known as catastrophic backtracking.
Let's look at how our expression runs into this problem, using a shorter string: "ACCCX". While it seems fairly straightforward, there are still four different ways that the engine could match those three C's:
- CCC
- CC+C
- C+CC
- C+C+C.
The engine has to try each of those combinations to see if any of them potentially match against the expression. When you combine that with the other steps the engine must take, we can use RegEx 101 debugger to see the engine has to take a total of 38 steps before it can determine the string doesn't match.
From there, the number of steps the engine must use to validate a string just continues to grow.
| String | Number of C's | Number of steps |
|---|---|---|
| ACCCX | 3 | 38 |
| ACCCCX | 4 | 71 |
| ACCCCCX | 5 | 136 |
| ACCCCCCCCCCCCCCX | 14 | 65,553 |
By the time the string includes 14 C's, the engine has to take over 65,000 steps just to see if the string is valid. These extreme situations can cause them to work very slowly (exponentially related to input size, as shown above), allowing an attacker to exploit this and can cause the service to excessively consume CPU, resulting in a Denial of Service.
Remediation
Upgrade org.apache.tika:tika-parsers to version 1.24 or higher.
References
medium severity
- Vulnerable module: org.apache.tika:tika-parsers
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.tika:tika-parsers@1.5Remediation: Upgrade to org.apache.solr:solr-cell@8.6.0.
Overview
org.apache.tika:tika-parsers is a toolkit for detecting and extracting metadata and structured text content from various documents using existing parser libraries.
Affected versions of this package are vulnerable to Denial of Service (DoS). A carefully crafted or corrupt PSD file can cause excessive memory usage in the PSDParser.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its original and legitimate users. There are many types of DoS attacks, ranging from trying to clog the network pipes to the system by generating a large volume of traffic from many machines (a Distributed Denial of Service - DDoS - attack) to sending crafted requests that cause a system to crash or take a disproportional amount of time to process.
The Regular expression Denial of Service (ReDoS) is a type of Denial of Service attack. Regular expressions are incredibly powerful, but they aren't very intuitive and can ultimately end up making it easy for attackers to take your site down.
Let’s take the following regular expression as an example:
regex = /A(B|C+)+D/
This regular expression accomplishes the following:
AThe string must start with the letter 'A'(B|C+)+The string must then follow the letter A with either the letter 'B' or some number of occurrences of the letter 'C' (the+matches one or more times). The+at the end of this section states that we can look for one or more matches of this section.DFinally, we ensure this section of the string ends with a 'D'
The expression would match inputs such as ABBD, ABCCCCD, ABCBCCCD and ACCCCCD
It most cases, it doesn't take very long for a regex engine to find a match:
$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCD")'
0.04s user 0.01s system 95% cpu 0.052 total
$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCX")'
1.79s user 0.02s system 99% cpu 1.812 total
The entire process of testing it against a 30 characters long string takes around ~52ms. But when given an invalid string, it takes nearly two seconds to complete the test, over ten times as long as it took to test a valid string. The dramatic difference is due to the way regular expressions get evaluated.
Most Regex engines will work very similarly (with minor differences). The engine will match the first possible way to accept the current character and proceed to the next one. If it then fails to match the next one, it will backtrack and see if there was another way to digest the previous character. If it goes too far down the rabbit hole only to find out the string doesn’t match in the end, and if many characters have multiple valid regex paths, the number of backtracking steps can become very large, resulting in what is known as catastrophic backtracking.
Let's look at how our expression runs into this problem, using a shorter string: "ACCCX". While it seems fairly straightforward, there are still four different ways that the engine could match those three C's:
- CCC
- CC+C
- C+CC
- C+C+C.
The engine has to try each of those combinations to see if any of them potentially match against the expression. When you combine that with the other steps the engine must take, we can use RegEx 101 debugger to see the engine has to take a total of 38 steps before it can determine the string doesn't match.
From there, the number of steps the engine must use to validate a string just continues to grow.
| String | Number of C's | Number of steps |
|---|---|---|
| ACCCX | 3 | 38 |
| ACCCCX | 4 | 71 |
| ACCCCCX | 5 | 136 |
| ACCCCCCCCCCCCCCX | 14 | 65,553 |
By the time the string includes 14 C's, the engine has to take over 65,000 steps just to see if the string is valid. These extreme situations can cause them to work very slowly (exponentially related to input size, as shown above), allowing an attacker to exploit this and can cause the service to excessively consume CPU, resulting in a Denial of Service.
Remediation
Upgrade org.apache.tika:tika-parsers to version 1.24 or higher.
References
medium severity
- Vulnerable module: org.apache.tika:tika-parsers
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.tika:tika-parsers@1.5Remediation: Upgrade to org.apache.solr:solr-cell@8.7.0.
Overview
org.apache.tika:tika-parsers is a toolkit for detecting and extracting metadata and structured text content from various documents using existing parser libraries.
Affected versions of this package are vulnerable to Denial of Service (DoS). A carefully crafted or corrupt file may trigger a System.exit in Tika's OneNote Parser. Crafted or corrupted files can also cause out of memory errors and/or infinite loops in Tika's ICNSParser, MP3Parser, MP4Parser, SAS7BDATParser, OneNoteParser and ImageParser.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its original and legitimate users. There are many types of DoS attacks, ranging from trying to clog the network pipes to the system by generating a large volume of traffic from many machines (a Distributed Denial of Service - DDoS - attack) to sending crafted requests that cause a system to crash or take a disproportional amount of time to process.
The Regular expression Denial of Service (ReDoS) is a type of Denial of Service attack. Regular expressions are incredibly powerful, but they aren't very intuitive and can ultimately end up making it easy for attackers to take your site down.
Let’s take the following regular expression as an example:
regex = /A(B|C+)+D/
This regular expression accomplishes the following:
AThe string must start with the letter 'A'(B|C+)+The string must then follow the letter A with either the letter 'B' or some number of occurrences of the letter 'C' (the+matches one or more times). The+at the end of this section states that we can look for one or more matches of this section.DFinally, we ensure this section of the string ends with a 'D'
The expression would match inputs such as ABBD, ABCCCCD, ABCBCCCD and ACCCCCD
It most cases, it doesn't take very long for a regex engine to find a match:
$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCD")'
0.04s user 0.01s system 95% cpu 0.052 total
$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCX")'
1.79s user 0.02s system 99% cpu 1.812 total
The entire process of testing it against a 30 characters long string takes around ~52ms. But when given an invalid string, it takes nearly two seconds to complete the test, over ten times as long as it took to test a valid string. The dramatic difference is due to the way regular expressions get evaluated.
Most Regex engines will work very similarly (with minor differences). The engine will match the first possible way to accept the current character and proceed to the next one. If it then fails to match the next one, it will backtrack and see if there was another way to digest the previous character. If it goes too far down the rabbit hole only to find out the string doesn’t match in the end, and if many characters have multiple valid regex paths, the number of backtracking steps can become very large, resulting in what is known as catastrophic backtracking.
Let's look at how our expression runs into this problem, using a shorter string: "ACCCX". While it seems fairly straightforward, there are still four different ways that the engine could match those three C's:
- CCC
- CC+C
- C+CC
- C+C+C.
The engine has to try each of those combinations to see if any of them potentially match against the expression. When you combine that with the other steps the engine must take, we can use RegEx 101 debugger to see the engine has to take a total of 38 steps before it can determine the string doesn't match.
From there, the number of steps the engine must use to validate a string just continues to grow.
| String | Number of C's | Number of steps |
|---|---|---|
| ACCCX | 3 | 38 |
| ACCCCX | 4 | 71 |
| ACCCCCX | 5 | 136 |
| ACCCCCCCCCCCCCCX | 14 | 65,553 |
By the time the string includes 14 C's, the engine has to take over 65,000 steps just to see if the string is valid. These extreme situations can cause them to work very slowly (exponentially related to input size, as shown above), allowing an attacker to exploit this and can cause the service to excessively consume CPU, resulting in a Denial of Service.
Remediation
Upgrade org.apache.tika:tika-parsers to version 1.24.1 or higher.
References
medium severity
- Vulnerable module: org.eclipse.jetty:jetty-server
- Introduced through: org.eclipse.jetty:jetty-server@8.1.15.v20140411 and org.eclipse.jetty:jetty-servlet@8.1.15.v20140411
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.eclipse.jetty:jetty-server@8.1.15.v20140411Remediation: Upgrade to org.eclipse.jetty:jetty-server@9.4.51.v20230217.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.eclipse.jetty:jetty-servlet@8.1.15.v20140411 › org.eclipse.jetty:jetty-security@8.1.10.v20130312 › org.eclipse.jetty:jetty-server@8.1.15.v20140411Remediation: Upgrade to org.eclipse.jetty:jetty-servlet@9.4.51.v20230217.
Overview
org.eclipse.jetty:jetty-server is a lightweight highly scalable java based web server and servlet engine.
Affected versions of this package are vulnerable to Denial of Service (DoS) such that servlets with multipart support (e.g. annotated with @MultipartConfig) that call HttpServletRequest.getParameter() or HttpServletRequest.getParts() may cause OutOfMemoryError when the client sends a multipart request with a part that has a name but no filename and very large content.
Note: This happens even with the default settings of fileSizeThreshold=0, which should stream the whole part content to disk. An attacker client may send a large multipart request and cause the server to throw OutOfMemoryError. However, the server may be able to recover after the OutOfMemoryError and continue its service -- although it may take some time.
Workaround
Users unable to upgrade can set the multipart parameter maxRequestSize, which must be set to a non-negative value.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade org.eclipse.jetty:jetty-server to version 9.4.51, 10.0.14, 11.0.14, 12.0.0.beta0 or higher.
References
medium severity
- Vulnerable module: org.eclipse.jetty:jetty-server
- Introduced through: org.eclipse.jetty:jetty-server@8.1.15.v20140411 and org.eclipse.jetty:jetty-servlet@8.1.15.v20140411
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.eclipse.jetty:jetty-server@8.1.15.v20140411Remediation: Upgrade to org.eclipse.jetty:jetty-server@9.2.28.v20190418.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.eclipse.jetty:jetty-servlet@8.1.15.v20140411 › org.eclipse.jetty:jetty-security@8.1.10.v20130312 › org.eclipse.jetty:jetty-server@8.1.15.v20140411Remediation: Upgrade to org.eclipse.jetty:jetty-servlet@9.2.28.v20190418.
Overview
org.eclipse.jetty:jetty-server is a lightweight highly scalable java based web server and servlet engine.
Affected versions of this package are vulnerable to Information Exposure. The configuration of a Jetty server may be leaked as part of a HTTP 404 response. This is due to the DefaultHandler class producing an error page during an exception.
Remediation
Upgrade org.eclipse.jetty:jetty-server to version 9.2.28.v20190418, 9.3.27.v20190418, 9.4.17.v20190418 or higher.
References
medium severity
- Vulnerable module: org.apache.poi:poi-ooxml
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.poi:poi-ooxml@3.10-beta2Remediation: Upgrade to org.apache.solr:solr-cell@8.5.0.
Overview
org.apache.poi:poi-ooxml is a Java API To Access Microsoft Format Files.
Affected versions of this package are vulnerable to XML External Entity (XXE) Injection. When using the tool XSSFExportToXml to convert user-provided Microsoft Excel documents, a specially crafted document can allow an attacker to read files from the local filesystem or from internal network resources via XML External Entity (XXE) Processing.
Details
XXE Injection is a type of attack against an application that parses XML input. XML is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. By default, many XML processors allow specification of an external entity, a URI that is dereferenced and evaluated during XML processing. When an XML document is being parsed, the parser can make a request and include the content at the specified URI inside of the XML document.
Attacks can include disclosing local files, which may contain sensitive data such as passwords or private user data, using file: schemes or relative paths in the system identifier.
For example, below is a sample XML document, containing an XML element- username.
<xml>
<?xml version="1.0" encoding="ISO-8859-1"?>
<username>John</username>
</xml>
An external XML entity - xxe, is defined using a system identifier and present within a DOCTYPE header. These entities can access local or remote content. For example the below code contains an external XML entity that would fetch the content of /etc/passwd and display it to the user rendered by username.
<xml>
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<username>&xxe;</username>
</xml>
Other XXE Injection attacks can access local resources that may not stop returning data, possibly impacting application availability and leading to Denial of Service.
Remediation
Upgrade org.apache.poi:poi-ooxml to version 4.1.0 or higher.
References
medium severity
- Vulnerable module: commons-fileupload:commons-fileupload
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › commons-fileupload:commons-fileupload@1.2.1Remediation: Upgrade to org.apache.solr:solr-core@5.5.2.
Overview
commons-fileupload:commons-fileupload is a component that provides a simple yet flexible means of adding support for multipart file upload functionality to servlets and web applications.
Affected versions of this package are vulnerable to Time of Check Time of Use (TOCTOU) if the attacker has write access to the /tmp directory.
Details
Commons FileUpload provides file upload capability for Servlets and web applications. During the upload process, FileUpload may (depending on configuration) save the uploaded file temporarily on disk. By default this will be in the system wide tmp directory. Because the temporary files have predictable file names and are stored in a publicly writeable location they are vulnerable to a TOCTOU attack.
A successful attack requires that the attacker has write access to the tmp directory. The attack can be prevented by setting the repository to a non-publicly writeable location. The documentation for FileUpload does not highlight the potential security implications of not setting a repository, nor do the provided examples set a repository. This may have caused users to use FileUpload in an insecure manner.
Remediation
Upgrade commons-fileupload:commons-fileupload to version 1.3 or higher.
References
medium severity
- Vulnerable module: commons-httpclient:commons-httpclient
- Introduced through: commons-httpclient:commons-httpclient@3.1
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › commons-httpclient:commons-httpclient@3.1
Overview
commons-httpclient:commons-httpclient is a HttpClient component of the Apache HttpComponents project.
Affected versions of this package are vulnerable to Man-in-the-Middle (MitM) due to not verifing the requesting server's hostname agains existing domain names in the SSL Certificate. The AbstractVerifier does not properly verify that the server hostname matches a domain name in the subject's Common Name (CN) or subjectAltName field of the X.509 certificate, which allows man-in-the-middle attackers to spoof SSL servers via a certificate with a subject that specifies a common name in a field that is not the CN field.
NOTE: this issue exists because of an incomplete fix for CVE-2012-5783.
Remediation
There is no fixed version for commons-httpclient:commons-httpclient.
References
medium severity
- Vulnerable module: org.apache.httpcomponents:httpclient
- Introduced through: org.apache.solr:solr-solrj@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-solrj@4.8.0 › org.apache.httpcomponents:httpclient@4.3.1Remediation: Upgrade to org.apache.solr:solr-solrj@5.2.0.
Overview
org.apache.httpcomponents:httpclient is a HttpClient component of the Apache HttpComponents project.
Affected versions of this package are vulnerable to Denial of Service (DoS) via the http/conn/ssl/SSLConnectionSocketFactory.java class. It ignores the http.socket.timeout configuration setting during an SSL handshake, which allows remote attackers to cause a denial of service (HTTPS call hang) via unspecified vectors.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade org.apache.httpcomponents:httpclient to version 4.3.6 or higher.
References
medium severity
- Vulnerable module: org.apache.poi:poi-ooxml
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.poi:poi-ooxml@3.10-beta2Remediation: Upgrade to org.apache.solr:solr-cell@4.9.1.
Overview
org.apache.poi:poi-ooxml is a Java API To Access Microsoft Format Files.
Affected versions of this package are vulnerable to XML External Entity (XXE) Injection. The OPC SAX setup in Apache POI allows remote attackers to read arbitrary files via an OpenXML file containing an XML external entity declaration in conjunction with an entity reference, related to an XML External Entity (XXE) issue.
Details
XXE Injection is a type of attack against an application that parses XML input. XML is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. By default, many XML processors allow specification of an external entity, a URI that is dereferenced and evaluated during XML processing. When an XML document is being parsed, the parser can make a request and include the content at the specified URI inside of the XML document.
Attacks can include disclosing local files, which may contain sensitive data such as passwords or private user data, using file: schemes or relative paths in the system identifier.
For example, below is a sample XML document, containing an XML element- username.
<xml>
<?xml version="1.0" encoding="ISO-8859-1"?>
<username>John</username>
</xml>
An external XML entity - xxe, is defined using a system identifier and present within a DOCTYPE header. These entities can access local or remote content. For example the below code contains an external XML entity that would fetch the content of /etc/passwd and display it to the user rendered by username.
<xml>
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<username>&xxe;</username>
</xml>
Other XXE Injection attacks can access local resources that may not stop returning data, possibly impacting application availability and leading to Denial of Service.
Remediation
Upgrade org.apache.poi:poi-ooxml to version 3.10.1, 3.11-beta2 or higher.
References
medium severity
- Vulnerable module: org.apache.poi:poi-ooxml
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.poi:poi-ooxml@3.10-beta2Remediation: Upgrade to org.apache.solr:solr-cell@5.0.0.
Overview
org.apache.poi:poi-ooxml is a Java API To Access Microsoft Format Files.
Affected versions of this package are vulnerable to XML External Entity (XXE) Injection. Apache POI before 3.10.1 and 3.11.x before 3.11-beta2 allows remote attackers to cause a denial of service (CPU consumption and crash) via a crafted OOXML file, aka an XML Entity Expansion (XXE) attack.
Details
XXE Injection is a type of attack against an application that parses XML input. XML is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. By default, many XML processors allow specification of an external entity, a URI that is dereferenced and evaluated during XML processing. When an XML document is being parsed, the parser can make a request and include the content at the specified URI inside of the XML document.
Attacks can include disclosing local files, which may contain sensitive data such as passwords or private user data, using file: schemes or relative paths in the system identifier.
For example, below is a sample XML document, containing an XML element- username.
<xml>
<?xml version="1.0" encoding="ISO-8859-1"?>
<username>John</username>
</xml>
An external XML entity - xxe, is defined using a system identifier and present within a DOCTYPE header. These entities can access local or remote content. For example the below code contains an external XML entity that would fetch the content of /etc/passwd and display it to the user rendered by username.
<xml>
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<username>&xxe;</username>
</xml>
Other XXE Injection attacks can access local resources that may not stop returning data, possibly impacting application availability and leading to Denial of Service.
Remediation
Upgrade org.apache.poi:poi-ooxml to version 3.11-beta2 or higher.
References
medium severity
- Vulnerable module: org.apache.solr:solr
- Introduced through: org.apache.solr:solr@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr@4.8.0Remediation: Upgrade to org.apache.solr:solr@4.10.3.
Overview
org.apache.solr:solr
Cross-site Scripting (XSS) vulnerability in the Admin UI Plugin / Stats page in Apache Solr 4.x before 4.10.3 allows remote attackers to inject arbitrary web script or HTML via the fieldvaluecache object.
Details
<
References
medium severity
- Vulnerable module: org.apache.solr:solr-core
- Introduced through: org.apache.solr:solr-core@4.8.0, org.apache.solr:solr@4.8.0 and others
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-core@7.6.0.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr@4.8.0 › org.apache.solr:solr-core@4.8.0
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-analysis-extras@4.8.0 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-analysis-extras@7.6.0.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-cell@7.6.0.
Overview
org.apache.solr:solr-core is an open source enterprise search platform built on Apache Lucene
Affected versions of this package are vulnerable to Server-side Request Forgery (SSRF). The shards parameter does not have a corresponding whitelist mechanism, a remote attacker with access to the server could make Solr perform an HTTP GET request to any reachable URL.
Remediation
Upgrade org.apache.solr:solr-core to version 7.6.0 or higher.
References
medium severity
- Vulnerable module: org.apache.zookeeper:zookeeper
- Introduced through: org.apache.solr:solr-solrj@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-solrj@4.8.0 › org.apache.zookeeper:zookeeper@3.4.6Remediation: Upgrade to org.apache.solr:solr-solrj@7.7.2.
Overview
org.apache.zookeeper:zookeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.
Affected versions of this package are vulnerable to Access Control Bypass. ZooKeeper’s getACL() method doesn’t check any permission when retrieving the ACLs of the requested node and returns all information contained in the ACL Id field as plain text string.
If Digest Authentication is in use, the unsalted hash value will be disclosed by the getACL() method for unauthenticated or unprivileged users.
Remediation
Upgrade org.apache.zookeeper:zookeeper to version 3.4.14, 3.5.5 or higher.
References
medium severity
- Vulnerable module: org.apache.zookeeper:zookeeper
- Introduced through: org.apache.solr:solr-solrj@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-solrj@4.8.0 › org.apache.zookeeper:zookeeper@3.4.6Remediation: Upgrade to org.apache.solr:solr-solrj@6.6.0.
Overview
org.apache.zookeeper:zookeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.
Affected versions of this package are vulnerable to Insufficiently Protected Credentials. The logs cleartext admin passwords, which allows local users to obtain sensitive information by reading the log.
Remediation
Upgrade org.apache.zookeeper:zookeeper to version 3.4.7, 3.5.1-alpha or higher.
References
medium severity
- Module: com.googlecode.juniversalchardet:juniversalchardet
- Introduced through: org.apache.solr:solr-cell@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › com.googlecode.juniversalchardet:juniversalchardet@1.0.3
MPL-2.0 license
low severity
- Vulnerable module: commons-codec:commons-codec
- Introduced through: commons-httpclient:commons-httpclient@3.1
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › commons-httpclient:commons-httpclient@3.1 › commons-codec:commons-codec@1.2
Overview
commons-codec:commons-codec is a package that contains simple encoder and decoders for various formats such as Base64 and Hexadecimal.
Affected versions of this package are vulnerable to Information Exposure. When there is no byte array value that can be encoded into a string the Base32 implementation does not reject it, and instead decodes it into an arbitrary value which can be re-encoded again using the same implementation. This allows for information exposure exploits such as tunneling additional information via seemingly valid base 32 strings.
Remediation
Upgrade commons-codec:commons-codec to version 1.14 or higher.
References
low severity
- Vulnerable module: log4j:log4j
- Introduced through: log4j:log4j@1.2.17, org.apache.solr:solr-solrj@4.8.0 and others
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › log4j:log4j@1.2.17
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-solrj@4.8.0 › log4j:log4j@1.2.17
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.slf4j:slf4j-log4j12@1.7.7 › log4j:log4j@1.2.17
Overview
log4j:log4j is a 1.x branch of the Apache Log4j project. Note: Log4j 1.x reached End of Life in 2015, and is no longer supported.
Affected versions of this package are vulnerable to Man-in-the-Middle (MitM). Improper validation of certificate with host mismatch in Apache Log4j SMTP appender. This could allow an SMTPS connection to be intercepted by a man-in-the-middle attack which could leak any log messages sent through that appender.
Remediation
There is no fixed version for log4j:log4j.
References
low severity
- Vulnerable module: org.apache.solr:solr-core
- Introduced through: org.apache.solr:solr-core@4.8.0, org.apache.solr:solr@4.8.0 and others
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-core@8.8.2.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr@4.8.0 › org.apache.solr:solr-core@4.8.0
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-analysis-extras@4.8.0 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-analysis-extras@8.8.2.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-cell@4.8.0 › org.apache.solr:solr-core@4.8.0Remediation: Upgrade to org.apache.solr:solr-cell@8.8.2.
Overview
org.apache.solr:solr-core is an open source enterprise search platform built on Apache Lucene
Affected versions of this package are vulnerable to Information Exposure. When starting Solr, configured with the SaslZkACLProvider or VMParamsAllAndReadonlyDigestZkACLProvider and no existing security.json znode, if the optional read-only user is configured then Solr would not treat that node as a sensitive path and would allow it to be readable. Additionally, with any ZkACLProvider, if the security.json is already present, Solr will not automatically update the ACLs.
Remediation
Upgrade org.apache.solr:solr-core to version 8.8.2 or higher.
References
low severity
- Vulnerable module: com.google.guava:guava
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › com.google.guava:guava@14.0.1Remediation: Upgrade to org.apache.solr:solr-core@8.11.3.
Overview
com.google.guava:guava is a set of core libraries that includes new collection types (such as multimap and multiset,immutable collections, a graph library, functional types, an in-memory cache and more.
Affected versions of this package are vulnerable to Creation of Temporary File in Directory with Insecure Permissions due to the use of Java's default temporary directory for file creation in FileBackedOutputStream. Other users and apps on the machine with access to the default Java temporary directory can access the files created by this class. This more fully addresses the underlying issue described in CVE-2020-8908, by deprecating the permissive temp file creation behavior.
NOTE: Even though the security vulnerability is fixed in version 32.0.0, the maintainers recommend using version 32.0.1, as version 32.0.0 breaks some functionality under Windows.
Remediation
Upgrade com.google.guava:guava to version 32.0.0-android, 32.0.0-jre or higher.
References
low severity
- Vulnerable module: com.google.guava:guava
- Introduced through: org.apache.solr:solr-core@4.8.0
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › com.google.guava:guava@14.0.1Remediation: Upgrade to org.apache.solr:solr-core@8.11.3.
Overview
com.google.guava:guava is a set of core libraries that includes new collection types (such as multimap and multiset,immutable collections, a graph library, functional types, an in-memory cache and more.
Affected versions of this package are vulnerable to Information Disclosure.
The file permissions on the file created by com.google.common.io.Files.createTempDir allow an attacker running a malicious program co-resident on the same machine to steal secrets stored in this directory. This is because, by default, on unix-like operating systems the /tmp directory is shared between all users, so if the correct file permissions aren't set by the directory/file creator, the file becomes readable by all other users on that system.
PoC
File guavaTempDir = com.google.common.io.Files.createTempDir();
System.out.println("Guava Temp Dir: " + guavaTempDir.getName());
runLS(guavaTempDir.getParentFile(), guavaTempDir); // Prints the file permissions -> drwxr-xr-x
File child = new File(guavaTempDir, "guava-child.txt");
child.createNewFile();
runLS(guavaTempDir, child); // Prints the file permissions -> -rw-r--r--
For Android developers, choosing a temporary directory API provided by Android is recommended, such as context.getCacheDir(). For other Java developers, we recommend migrating to the Java 7 API java.nio.file.Files.createTempDirectory() which explicitly configures permissions of 700, or configuring the Java runtime's java.io.tmpdir system property to point to a location whose permissions are appropriately configured.
Remediation
There is no fix for com.google.guava:guava. However, in version 30.0 and above, the vulnerable functionality has been deprecated. In oder to mitigate this vulnerability, upgrade to version 30.0 or higher and ensure your dependencies don't use the createTempDir or createTempFile methods.
References
low severity
- Vulnerable module: org.eclipse.jetty:jetty-server
- Introduced through: org.eclipse.jetty:jetty-server@8.1.15.v20140411 and org.eclipse.jetty:jetty-servlet@8.1.15.v20140411
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.eclipse.jetty:jetty-server@8.1.15.v20140411Remediation: Upgrade to org.eclipse.jetty:jetty-server@9.4.41.v20210516.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.eclipse.jetty:jetty-servlet@8.1.15.v20140411 › org.eclipse.jetty:jetty-security@8.1.10.v20130312 › org.eclipse.jetty:jetty-server@8.1.15.v20140411Remediation: Upgrade to org.eclipse.jetty:jetty-servlet@9.4.41.v20210516.
Overview
org.eclipse.jetty:jetty-server is a lightweight highly scalable java based web server and servlet engine.
Affected versions of this package are vulnerable to Information Exposure. If an exception is thrown by the SessionListener#sessionDestroyed() method, the session ID will not be validated in the manager, which may allow the application to be left logged in on a shared computer.
Remediation
Upgrade org.eclipse.jetty:jetty-server to version 11.0.3, 10.0.3, 9.4.41 or higher.
References
low severity
- Vulnerable module: org.eclipse.jetty:jetty-http
- Introduced through: org.apache.solr:solr-core@4.8.0, org.eclipse.jetty:jetty-server@8.1.15.v20140411 and others
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › org.eclipse.jetty:jetty-http@8.1.10.v20130312Remediation: Upgrade to org.apache.solr:solr-core@8.11.3.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.eclipse.jetty:jetty-server@8.1.15.v20140411 › org.eclipse.jetty:jetty-http@8.1.10.v20130312Remediation: Upgrade to org.eclipse.jetty:jetty-server@9.4.47.v20220610.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.eclipse.jetty:jetty-servlet@8.1.15.v20140411 › org.eclipse.jetty:jetty-security@8.1.10.v20130312 › org.eclipse.jetty:jetty-server@8.1.15.v20140411 › org.eclipse.jetty:jetty-http@8.1.10.v20130312Remediation: Upgrade to org.eclipse.jetty:jetty-servlet@9.4.47.v20220610.
Overview
org.eclipse.jetty:jetty-http is an is a http module for jetty server.
Affected versions of this package are vulnerable to Improper Input Validation due to improper URI paring in the HttpURI class.
Remediation
Upgrade org.eclipse.jetty:jetty-http to version 9.4.47, 10.0.10, 11.0.10 or higher.
References
low severity
- Vulnerable module: org.eclipse.jetty:jetty-http
- Introduced through: org.apache.solr:solr-core@4.8.0, org.eclipse.jetty:jetty-server@8.1.15.v20140411 and others
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.apache.solr:solr-core@4.8.0 › org.eclipse.jetty:jetty-http@8.1.10.v20130312Remediation: Upgrade to org.apache.solr:solr-core@8.11.3.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.eclipse.jetty:jetty-server@8.1.15.v20140411 › org.eclipse.jetty:jetty-http@8.1.10.v20130312Remediation: Upgrade to org.eclipse.jetty:jetty-server@9.4.51.v20230217.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.eclipse.jetty:jetty-servlet@8.1.15.v20140411 › org.eclipse.jetty:jetty-security@8.1.10.v20130312 › org.eclipse.jetty:jetty-server@8.1.15.v20140411 › org.eclipse.jetty:jetty-http@8.1.10.v20130312Remediation: Upgrade to org.eclipse.jetty:jetty-servlet@9.4.51.v20230217.
Overview
org.eclipse.jetty:jetty-http is an is a http module for jetty server.
Affected versions of this package are vulnerable to Information Exposure such that nonstandard cookie parsing may allow an attacker to smuggle cookies within other cookies, or otherwise perform unintended behavior by tampering with the cookie parsing mechanism. If Jetty sees a cookie VALUE that starts with " (double quote), it will continue to read the cookie string until it sees a closing quote -- even if a semicolon is encountered.
Exploiting this vulnerability results in cookies exfiltration and policy based on cookies bypass.
Note:
A cookie header such as: DISPLAY_LANGUAGE="b; JSESSIONID=1337; c=d" will be parsed as one cookie, with the name DISPLAY_LANGUAGE and a value of b; JSESSIONID=1337; c=d instead of 3 separate cookies.
Remediation
Upgrade org.eclipse.jetty:jetty-http to version 9.4.51, 10.0.14, 11.0.14, 12.0.0.beta0 or higher.
References
low severity
- Vulnerable module: org.eclipse.jetty:jetty-server
- Introduced through: org.eclipse.jetty:jetty-server@8.1.15.v20140411 and org.eclipse.jetty:jetty-servlet@8.1.15.v20140411
Detailed paths
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.eclipse.jetty:jetty-server@8.1.15.v20140411Remediation: Upgrade to org.eclipse.jetty:jetty-server@9.4.51.v20230217.
-
Introduced through: Cantara/ACSSearch@Cantara/ACSSearch#1dad34017161b79523762c513ea50164b9ee2d08 › org.eclipse.jetty:jetty-servlet@8.1.15.v20140411 › org.eclipse.jetty:jetty-security@8.1.10.v20130312 › org.eclipse.jetty:jetty-server@8.1.15.v20140411Remediation: Upgrade to org.eclipse.jetty:jetty-servlet@9.4.51.v20230217.
Overview
org.eclipse.jetty:jetty-server is a lightweight highly scalable java based web server and servlet engine.
Affected versions of this package are vulnerable to Information Exposure such that nonstandard cookie parsing may allow an attacker to smuggle cookies within other cookies, or otherwise perform unintended behavior by tampering with the cookie parsing mechanism. If Jetty sees a cookie VALUE that starts with " (double quote), it will continue to read the cookie string until it sees a closing quote -- even if a semicolon is encountered.
Exploiting this vulnerability results in cookies exfiltration and policy based on cookies bypass.
Note:
A cookie header such as: DISPLAY_LANGUAGE="b; JSESSIONID=1337; c=d" will be parsed as one cookie, with the name DISPLAY_LANGUAGE and a value of b; JSESSIONID=1337; c=d instead of 3 separate cookies.
Remediation
Upgrade org.eclipse.jetty:jetty-server to version 9.4.51, 10.0.14, 11.0.14, 12.0.0.beta0 or higher.