yevster/App-BOM-ination
Find, fix and prevent vulnerabilities in your code.
critical severity
- Vulnerable module: org.apache.activemq:activemq-client
- Introduced through: org.apache.activemq:activemq-broker@5.8.0
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.activemq:activemq-broker@5.8.0 › org.apache.activemq:activemq-client@5.8.0Remediation: Upgrade to org.apache.activemq:activemq-broker@5.15.16.
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.activemq:activemq-broker@5.8.0 › org.apache.activemq:activemq-openwire-legacy@5.8.0 › org.apache.activemq:activemq-client@5.8.0Remediation: Upgrade to org.apache.activemq:activemq-broker@5.15.16.
Overview
org.apache.activemq:activemq-client is a high performance Apache 2.0 licensed Message Broker and JMS 1.1 implementation.
Affected versions of this package are vulnerable to Deserialization of Untrusted Data via the OpenWire
protocol. An attacker with network access to a broker or client can run arbitrary shell commands by manipulating serialized class types, causing the affected broker or client to instantiate any class on the classpath.
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
Upgrade org.apache.activemq:activemq-client
to version 5.15.16, 5.16.7, 5.17.6, 5.18.3 or higher.
References
critical severity
- Vulnerable module: org.apache.activemq:activemq-openwire-legacy
- Introduced through: org.apache.activemq:activemq-broker@5.8.0
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.activemq:activemq-broker@5.8.0 › org.apache.activemq:activemq-openwire-legacy@5.8.0Remediation: Upgrade to org.apache.activemq:activemq-broker@5.15.16.
Overview
Affected versions of this package are vulnerable to Deserialization of Untrusted Data via the OpenWire
protocol. An attacker with network access to a broker or client can run arbitrary shell commands by manipulating serialized class types, causing the affected broker or client to instantiate any class on the classpath.
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
Upgrade org.apache.activemq:activemq-openwire-legacy
to version 5.15.16, 5.16.7, 5.17.6, 5.18.3 or higher.
References
critical severity
- Vulnerable module: commons-fileupload:commons-fileupload
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6 › commons-fileupload:commons-fileupload@1.2.1Remediation: Upgrade to org.apache.struts:struts2-core@2.3.37.
Overview
commons-fileupload:commons-fileupload
The Apache Commons FileUpload library contains a Java Object that, upon deserialization, can be manipulated to write or copy files in arbitrary locations. If integrated with ysoserial
, it is possible to upload and execute binaries in a single deserialization call.
Details
Serialization is a process of converting an object into a sequence of bytes which can be persisted to a disk or database or can be sent through streams. The reverse process of creating object from sequence of bytes is called deserialization. Serialization is commonly used for communication (sharing objects between multiple hosts) and persistence (store the object state in a file or a database). It is an integral part of popular protocols like Remote Method Invocation (RMI), Java Management Extension (JMX), Java Messaging System (JMS), Action Message Format (AMF), Java Server Faces (JSF) ViewState, etc.
Deserialization of untrusted data (CWE-502), is when the application deserializes untrusted data without sufficiently verifying that the resulting data will be valid, letting the attacker to control the state or the flow of the execution.
Java deserialization issues have been known for years. However, interest in the issue intensified greatly in 2015, when classes that could be abused to achieve remote code execution were found in a popular library (Apache Commons Collection). These classes were used in zero-days affecting IBM WebSphere, Oracle WebLogic and many other products.
An attacker just needs to identify a piece of software that has both a vulnerable class on its path, and performs deserialization on untrusted data. Then all they need to do is send the payload into the deserializer, getting the command executed.
Developers put too much trust in Java Object Serialization. Some even de-serialize objects pre-authentication. When deserializing an Object in Java you typically cast it to an expected type, and therefore Java's strict type system will ensure you only get valid object trees. Unfortunately, by the time the type checking happens, platform code has already created and executed significant logic. So, before the final type is checked a lot of code is executed from the readObject() methods of various objects, all of which is out of the developer's control. By combining the readObject() methods of various classes which are available on the classpath of the vulnerable application an attacker can execute functions (including calling Runtime.exec() to execute local OS commands).
- Apache Blog
Remediation
Upgrade commons-fileupload
to version 1.3.3 or higher.
References
critical severity
- Vulnerable module: org.apache.activemq:activemq-broker
- Introduced through: org.apache.activemq:activemq-broker@5.8.0
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.activemq:activemq-broker@5.8.0Remediation: Upgrade to org.apache.activemq:activemq-broker@5.10.1.
Overview
org.apache.activemq:activemq-broker is a high performance Apache 2.0 licensed Message Broker and JMS 1.1 implementation.
Affected versions of this package are vulnerable to XML External Entity (XXE) Injection. This could allow remote consumers to have unspecified impact via vectors involving an XPath based selector when dequeuing XML messages.
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.activemq:activemq-broker
to version 5.10.1 or higher.
References
critical severity
- Vulnerable module: org.apache.activemq:activemq-client
- Introduced through: org.apache.activemq:activemq-broker@5.8.0
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.activemq:activemq-broker@5.8.0 › org.apache.activemq:activemq-client@5.8.0Remediation: Upgrade to org.apache.activemq:activemq-broker@5.11.3.
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.activemq:activemq-broker@5.8.0 › org.apache.activemq:activemq-openwire-legacy@5.8.0 › org.apache.activemq:activemq-client@5.8.0Remediation: Upgrade to org.apache.activemq:activemq-broker@5.11.3.
Overview
org.apache.activemq:activemq-client is a high performance Apache 2.0 licensed Message Broker and JMS 1.1 implementation.
Affected versions of this package are vulnerable to Arbitrary Code Execution. Apache ActiveMQ doesn't restrict the classes that can be serialized in the broker, which allows remote attackers to execute arbitrary code via a crafted serialized Java Message Service (JMS) ObjectMessage object.
Remediation
Upgrade org.apache.activemq:activemq-client
to version 5.11.3, 5.12.2 or higher.
References
critical severity
- Vulnerable module: org.apache.activemq:activemq-client
- Introduced through: org.apache.activemq:activemq-broker@5.8.0
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.activemq:activemq-broker@5.8.0 › org.apache.activemq:activemq-client@5.8.0Remediation: Upgrade to org.apache.activemq:activemq-broker@5.10.1.
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.activemq:activemq-broker@5.8.0 › org.apache.activemq:activemq-openwire-legacy@5.8.0 › org.apache.activemq:activemq-client@5.8.0Remediation: Upgrade to org.apache.activemq:activemq-broker@5.10.1.
Overview
org.apache.activemq:activemq-client is a high performance Apache 2.0 licensed Message Broker and JMS 1.1 implementation.
Affected versions of this package are vulnerable to XML External Entity (XXE) Injection. This could allow remote consumers to have unspecified impact via vectors involving an XPath based selector when dequeuing XML messages.
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.activemq:activemq-client
to version 5.10.1 or higher.
References
critical severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.20.3.
Overview
org.apache.struts:struts2-core
is a free open-source solution for creating Java web applications.
Affected versions of this package are vulnerable to Arbitrary Code Execution. It allows remote attackers to execute arbitrary code via the stylesheet location parameter.
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.3.20.2, 2.3.24.2, 2.3.28.1 or higher.
References
critical severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.34.
Overview
Apache Struts2 is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to arbitrary code execution. Using expression literals or forcing expressions in Freemarker tags (see example snippet below), and using request values can lead to remote code execution.
<@s.hidden name="redirectUri" value=redirectUri />
<@s.hidden name="redirectUri" value="${redirectUri}" />
<@s.hidden name="${redirectUri}"/>
In both cases a writable property is used in the value attribute and in both cases this is treated as an expression by Freemarker. Please be aware that using Struts expression evaluation style is safe:
<@s.hidden name="redirectUri" value="%{redirectUri}" />
<@s.hidden name="%{redirectUri}"/>
Remediation
Developers are strongly advised to upgrade their Apache Struts components to version 2.3.34
, 2.5.12
or higher.
References
critical severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.20.3.
Overview
org.apache.struts:struts2-core
Apache Struts 2.3.20.x before 2.3.20.3, 2.3.24.x before 2.3.24.3, and 2.3.28.x before 2.3.28.1, when Dynamic Method Invocation is enabled, allow remote attackers to execute arbitrary code via vectors related to an ! (exclamation mark) operator to the REST Plugin.
References
critical severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.15.2.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Dynamic Method Executions. It enables Dynamic Method Invocation by default, which has unknown impact and attack vectors.
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.3.15.2 or higher.
References
critical severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.29.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Improper Action Name Cleanup. It allowed attackers to have unspecified impact via vectors related to improper action name clean up.
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.3.29, 2.5.1 or higher.
References
critical severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.2.3.1.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Improper Input Validation. It evaluates a string as an OGNL expression during the handling of a conversion error, which allows remote attackers to modify run-time data values, and consequently execute arbitrary code, via invalid input to a field.
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.2.3.1 or higher.
References
critical severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.5.26.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Remote Code Execution (RCE). The vulnerability exists due to improper input validation when processing certain tag's attributes. The application performs double evaluation of the code if a developer applied forced OGNL evaluation by using the %{...}
syntax. A remote attacker can send a specially crafted request to the application and execute arbitrary code on the target system.
Successful exploitation of this vulnerability may result in complete compromise of vulnerable system.
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.5.26 or higher.
References
critical severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.5.22.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Remote Code Execution (RCE). Forced double OGNL evaluation, when evaluated on raw user input in tag attributes, may lead to remote code execution.
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.5.22 or higher.
References
critical severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.5.33.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Remote Code Execution (RCE) via manipulation of file upload parameters that enable path traversal. Under certain conditions, uploading of a malicious file is possible, which may then be executed on the server.
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.5.33, 6.3.0.2 or higher.
References
critical severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@7.0.0.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Remote Code Execution (RCE) via manipulation of file upload parameters that enable path traversal. When using FileUploadInterceptor
, uploading of a malicious file is possible, which may then be executed on the server.
Notes:
This is only exploitable if the application uses FileUploadInterceptor
;
Version 6.4.0 deprecates FileUploadInterceptor
, but to fix the vulnerability its use must be replaced by an instance of Action File Upload and the corresponding interceptor. FileUploadInterceptor
has been removed in 7.0.0.
Remediation
Upgrade org.apache.struts:struts2-core
to version 7.0.0 or higher.
References
high severity
- Vulnerable module: com.google.protobuf:protobuf-java
- Introduced through: mysql:mysql-connector-java@8.0.11
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › mysql:mysql-connector-java@8.0.11 › com.google.protobuf:protobuf-java@2.6.0Remediation: Upgrade to mysql:mysql-connector-java@8.0.13.
Overview
com.google.protobuf:protobuf-java is a Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data.
Affected versions of this package are vulnerable to Integer Overflow by allowing remote authenticated attackers to cause a heap-based buffer overflow in serialisation process.
Remediation
Upgrade com.google.protobuf:protobuf-java
to version 3.4.0 or higher.
References
high severity
- Vulnerable module: mysql:mysql-connector-java
- Introduced through: mysql:mysql-connector-java@8.0.11
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › mysql:mysql-connector-java@8.0.11Remediation: Upgrade to mysql:mysql-connector-java@8.0.13.
Overview
mysql:mysql-connector-java provides connectivity for client applications developed in the Java programming language with MySQL Connector/J, a driver that implements the Java Database Connectivity (JDBC) API.
Affected versions of this package are vulnerable to Access Control Bypass.
A vulnerability in the Connector/J
component allows low privileged attackers with network access via multiple protocols to compromise MySQL Connectors. Successful attacks of this vulnerability can result in takeover of MySQL Connectors.
Remediation
Upgrade mysql:mysql-connector-java
to version 8.0.13 or higher.
References
high severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.2.3.1.
Overview
org.apache.struts:struts2-core
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during certain exception handling for mismatched data types of properties, which allows remote attackers to execute arbitrary Java code via a crafted parameter.
References
high severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.14.3.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Arbitrary Code Execution. It allows remote attackers to execute arbitrary OGNL code via a request with a crafted value that contains both "${}" and "%{}" sequences, which causes the OGNL code to be evaluated twice.
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.3.14.3 or higher.
References
high severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.14.1.
Overview
org.apache.struts:struts2-core
Apache Struts 2 before 2.3.14.1 allows remote attackers to execute arbitrary OGNL code via a crafted request that is not properly handled when using the includeParams attribute in the (1) URL or (2) A tag.
References
high severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.14.2.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Arbitrary Code Injection. Apache Struts 2 before 2.3.14.2 allows remote attackers to execute arbitrary OGNL code via a crafted request that is not properly handled when using the includeParams attribute in the (1) URL or (2) A tag. NOTE: this issue is due to an incomplete fix for CVE-2013-1966.
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.3.14.2 or higher.
References
high severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.14.3.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Arbitrary Code Injection. It allows remote attackers to execute arbitrary OGNL code via a request with a crafted action name that is not properly handled during wildcard matching, a different vulnerability than CVE-2013-2135.
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.3.14.3 or higher.
References
high severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.14.1.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Arbitrary Code Injection. It allows remote attackers to execute arbitrary OGNL code via a crafted parameter name that is not properly handled when invoking a redirect.
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.3.14.1 or higher.
References
high severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.1.1.
Overview
org.apache.struts:struts2-core
The CookieInterceptor component in Apache Struts before 2.3.1.1 does not use the parameter-name whitelist, which allows remote attackers to execute arbitrary commands via a crafted HTTP Cookie header that triggers Java code execution through a static method.
References
high severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.15.
Overview
org.apache.struts:struts2-core
Apache Struts 2.0.0 through 2.3.15 allows remote attackers to execute arbitrary OGNL expressions via a parameter with a crafted (1) action:, (2) redirect:, or (3) redirectAction: prefix.
References
high severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.5.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Unrestricted Upload of File with Dangerous Type. A local code execution issue exists in Apache Struts2 when processing malformed XSLT files, which could let a malicious user upload and execute arbitrary files.
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.5 or higher.
References
high severity
- Vulnerable module: com.google.protobuf:protobuf-java
- Introduced through: mysql:mysql-connector-java@8.0.11
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › mysql:mysql-connector-java@8.0.11 › com.google.protobuf:protobuf-java@2.6.0Remediation: Upgrade to mysql:mysql-connector-java@8.0.31.
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
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.34.
Overview
Apache Struts2 is a popular open-source framework for developing web applications in the Java programming language.
The REST Plugin in affected versions use a XStreamHandler
with an instance of XStream for deserialization without any type filtering. By design, there are few limits to the type of objects XStream can handle. This flexibility comes at a price. The XML generated or consumed by XStream includes all information required to build Java objects of almost any type. The provided XML data is used by XStream to unmarshal Java objects. An attacker could use this flaw to execute arbitrary code or conduct further attacks.
A working exploit is publicly available and is actively exploited in the wild.
You can read more about this vulnerability on our blog.
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 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
Developers are strongly advised to upgrade their Apache Struts components to version 2.3.34
, 2.5.13
or higher.
It is possible that some REST actions stop working because of applied default restrictions on available classes. In this case please investigate the new interfaces that were introduced to allow class restrictions per action, those interfaces are:
- org.apache.struts2.rest.handler.AllowedClasses
- org.apache.struts2.rest.handler.AllowedClassNames
- org.apache.struts2.rest.handler.XStreamPermissionProvider
If for some reason upgrading is not an option, consider the following workarounds:
- Disable handling XML pages and requests to such pages
<constant name="struts.action.extension" value="xhtml,,json" />
- Override getContentType in XStreamHandler
public class MyXStreamHandler extends XStreamHandler {
public String getContentType() {
return "not-existing-content-type-@;/&%$#@";
}
}
- Register the handler by overriding the one provided by the framework in your struts.xml
<bean type="org.apache.struts2.rest.handler.ContentTypeHandler" name="myXStreamHandmer" class="com.company.MyXStreamHandler"/>
<constant name="struts.rest.handlerOverride.xml" value="myXStreamHandler"/>
References
high severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.20.3.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Command Injection. When Dynamic Method Invocation was enabled, a remote attackers could execute arbitrary code via the prefix method, related to chained expressions.
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.3.20.2, 2.3.24.2, 2.3.28.1 or higher.
References
high severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.5.30.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Remote Code Execution (RCE). The fix issued for CVE-2020-17530 was incomplete. Some of the tag’s attributes could perform a double evaluation if a developer applied forced OGNL evaluation by using the %{...} syntax
. Using forced OGNL evaluation on untrusted user input can lead to a Remote Code Execution and security degradation.
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.5.30 or higher.
References
high severity
- Vulnerable module: com.google.protobuf:protobuf-java
- Introduced through: mysql:mysql-connector-java@8.0.11
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › mysql:mysql-connector-java@8.0.11 › com.google.protobuf:protobuf-java@2.6.0Remediation: Upgrade to mysql:mysql-connector-java@8.0.29.
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
- Vulnerable module: com.google.protobuf:protobuf-java
- Introduced through: mysql:mysql-connector-java@8.0.11
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › mysql:mysql-connector-java@8.0.11 › com.google.protobuf:protobuf-java@2.6.0Remediation: Upgrade to mysql:mysql-connector-java@8.0.31.
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
- Vulnerable module: org.apache.activemq:activemq-broker
- Introduced through: org.apache.activemq:activemq-broker@5.8.0
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.activemq:activemq-broker@5.8.0Remediation: Upgrade to org.apache.activemq:activemq-broker@5.11.0.
Overview
org.apache.activemq:activemq-broker is a high performance Apache 2.0 licensed Message Broker and JMS 1.1 implementation.
Affected versions of this package are vulnerable to Denial of Service (DoS). The processControlCommand
function in broker/TransportConnection.java
in ActiveMQ allows remote attackers to cause a denial of service (shutdown) via a shutdown command.
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.activemq:activemq-broker
to version 5.11.0 or higher.
References
high severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.5.22.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Denial of Service (DoS). When a file upload is performed to an Action
that exposes the file with a getter, an attacker may manipulate the request such that the working copy of the uploaded file is set to read-only. As a result, subsequent actions on the file will fail with an error. It might also be possible to set the Servlet container's temp directory to read-only, such that subsequent upload actions will fail.
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.5.22 or higher.
References
high severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.24.1.
Overview
ValueStack
defines special top
object which represents root of execution context. It can be used to manipulate Struts' internals or can be used to affect container's settings.
References
high severity
- Vulnerable module: org.freemarker:freemarker
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6 › org.freemarker:freemarker@2.3.13Remediation: Upgrade to org.apache.struts:struts2-core@2.5.25.
Overview
org.freemarker:freemarker is a "template engine"; a generic tool to generate text output (anything from HTML to auto generated source code) based on templates.
Affected versions of this package are vulnerable to Server-side Template Injection (SSTI). By allowing user input into java.security.ProtectionDomain.getClassLoader
, templates will get access to the java classloader. This can be further leveraged for file system access and code execution. A low-privileged user is sufficient for exploitation of this vulnerability.
Remediation
Upgrade org.freemarker:freemarker
to version 2.3.30 or higher.
References
high severity
- Vulnerable module: org.apache.activemq:activemq-client
- Introduced through: org.apache.activemq:activemq-broker@5.8.0
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.activemq:activemq-broker@5.8.0 › org.apache.activemq:activemq-client@5.8.0Remediation: Upgrade to org.apache.activemq:activemq-broker@5.15.6.
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.activemq:activemq-broker@5.8.0 › org.apache.activemq:activemq-openwire-legacy@5.8.0 › org.apache.activemq:activemq-client@5.8.0Remediation: Upgrade to org.apache.activemq:activemq-broker@5.15.6.
Overview
org.apache.activemq:activemq-client is a high performance Apache 2.0 licensed Message Broker and JMS 1.1 implementation.
Affected versions of this package are vulnerable to Man-in-the-Middle (MitM) due to missing TLS hostname verification.
Remediation
Upgrade org.apache.activemq:activemq-client
to version 5.15.6 or higher.
References
high severity
- Vulnerable module: commons-fileupload:commons-fileupload
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6 › commons-fileupload:commons-fileupload@1.2.1Remediation: Upgrade to org.apache.struts:struts2-core@2.3.16.1.
Overview
commons-fileupload:commons-fileupload
Affected versions of this package are vulnerable to Arbitrary File Write.
Details
The DiskFileItem class in Apache Commons FileUpload, as used in Red Hat JBoss BRMS 5.3.1; JBoss Portal 4.3 CP07, 5.2.2, and 6.0.0; and Red Hat JBoss Web Server 1.0.2 allows remote attackers to write to arbitrary files via a NULL byte in a file name in a serialized instance.
References
high severity
- Vulnerable module: commons-fileupload:commons-fileupload
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6 › commons-fileupload:commons-fileupload@1.2.1Remediation: Upgrade to org.apache.struts:struts2-core@2.3.16.1.
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
- Vulnerable module: org.apache.activemq:activemq-broker
- Introduced through: org.apache.activemq:activemq-broker@5.8.0
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.activemq:activemq-broker@5.8.0Remediation: Upgrade to org.apache.activemq:activemq-broker@5.10.1.
Overview
org.apache.activemq:activemq-broker is a high performance Apache 2.0 licensed Message Broker and JMS 1.1 implementation.
Affected versions of this package are vulnerable to Improper Authentication. None
Remediation
Upgrade org.apache.activemq:activemq-broker
to version 5.10.1 or higher.
References
high severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.16.2.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Arbitrary Code Execution. When a wildcard cookiesName value is used, CookieInterceptor
does not properly restrict access to the getClass
method, which allows remote attackers to "manipulate" the ClassLoader and execute arbitrary code via a crafted request. NOTE: this vulnerability exists because of an incomplete fix for CVE-2014-0094.
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.3.16.2 or higher.
References
high severity
- Vulnerable module: org.hibernate:hibernate-validator
- Introduced through: org.hibernate:hibernate-validator@5.2.0.Final
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.hibernate:hibernate-validator@5.2.0.FinalRemediation: Upgrade to org.hibernate:hibernate-validator@6.0.23.Final.
Overview
org.hibernate:hibernate-validator is a Hibernate Validator Engine Relocation Artifact.
Affected versions of this package are vulnerable to Arbitrary Code Execution. An attacker may be able to validate an invalid instance and access the private member value via the ConstraintViolation#getInvalidValue()
function.
Remediation
Upgrade org.hibernate:hibernate-validator
to version 5.2.5.Final, 5.3.6.Final, 5.4.2.Final or higher.
References
high severity
new
- Module: mysql:mysql-connector-java
- Introduced through: mysql:mysql-connector-java@8.0.11
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › mysql:mysql-connector-java@8.0.11
GPL-2.0 license
medium severity
- Vulnerable module: mysql:mysql-connector-java
- Introduced through: mysql:mysql-connector-java@8.0.11
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › mysql:mysql-connector-java@8.0.11Remediation: Upgrade to mysql:mysql-connector-java@8.0.28.
Overview
mysql:mysql-connector-java is a provides connectivity for client applications developed in the Java programming language with MySQL Connector/J, a driver that implements the Java Database Connectivity (JDBC) API.
Affected versions of this package are vulnerable to Improper Authorization via the MysqlSQLXML::getSource()
function. A malicious actor with high privileges can access all of the MySQL connector's accessible data and crash the connectors.
Remediation
Upgrade mysql:mysql-connector-java
to version 8.0.28 or higher.
References
medium severity
- Vulnerable module: commons-fileupload:commons-fileupload
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6 › commons-fileupload:commons-fileupload@1.2.1Remediation: Upgrade to org.apache.struts:struts2-core@6.1.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 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
- Vulnerable module: commons-fileupload:commons-fileupload
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6 › commons-fileupload:commons-fileupload@1.2.1Remediation: Upgrade to org.apache.struts:struts2-core@2.3.30.
Overview
commons-fileupload:commons-fileupload
provides a simple yet flexible means of adding support for multipart file upload functionality to servlets and web applications.
Affected versions of the package are vulnerable to Information Disclosure because the InputStream
is not closed on exception.
Remediation
Upgrade commons-fileupload
to version 1.3.2 or higher.
References
medium severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.1.1.
Overview
org.apache.struts:struts2-core
The ParameterInterceptor component in Apache Struts before 2.3.1.1 does not prevent access to public constructors, which allows remote attackers to create or overwrite arbitrary files via a crafted parameter that triggers the creation of a Java object.
References
medium severity
- Vulnerable module: org.hibernate:hibernate-validator
- Introduced through: org.hibernate:hibernate-validator@5.2.0.Final
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.hibernate:hibernate-validator@5.2.0.FinalRemediation: Upgrade to org.hibernate:hibernate-validator@6.0.23.Final.
Overview
org.hibernate:hibernate-validator is a Hibernate Validator Engine Relocation Artifact.
Affected versions of this package are vulnerable to Cross-site Scripting (XSS). The SafeHtml
validator annotation fails to properly sanitize payloads consisting of potentially malicious code in HTML comments and instructions.
Details
A cross-site scripting attack occurs when the attacker tricks a legitimate web-based application or site to accept a request as originating from a trusted source.
This is done by escaping the context of the web application; the web application then delivers that data to its users along with other trusted dynamic content, without validating it. The browser unknowingly executes malicious script on the client side (through client-side languages; usually JavaScript or HTML) in order to perform actions that are otherwise typically blocked by the browser’s Same Origin Policy.
Injecting malicious code is the most prevalent manner by which XSS is exploited; for this reason, escaping characters in order to prevent this manipulation is the top method for securing code against this vulnerability.
Escaping means that the application is coded to mark key characters, and particularly key characters included in user input, to prevent those characters from being interpreted in a dangerous context. For example, in HTML, <
can be coded as <
; and >
can be coded as >
; in order to be interpreted and displayed as themselves in text, while within the code itself, they are used for HTML tags. If malicious content is injected into an application that escapes special characters and that malicious content uses <
and >
as HTML tags, those characters are nonetheless not interpreted as HTML tags by the browser if they’ve been correctly escaped in the application code and in this way the attempted attack is diverted.
The most prominent use of XSS is to steal cookies (source: OWASP HttpOnly) and hijack user sessions, but XSS exploits have been used to expose sensitive information, enable access to privileged services and functionality and deliver malware.
Types of attacks
There are a few methods by which XSS can be manipulated:
Type | Origin | Description |
---|---|---|
Stored | Server | The malicious code is inserted in the application (usually as a link) by the attacker. The code is activated every time a user clicks the link. |
Reflected | Server | The attacker delivers a malicious link externally from the vulnerable web site application to a user. When clicked, malicious code is sent to the vulnerable web site, which reflects the attack back to the user’s browser. |
DOM-based | Client | The attacker forces the user’s browser to render a malicious page. The data in the page itself delivers the cross-site scripting data. |
Mutated | The attacker injects code that appears safe, but is then rewritten and modified by the browser, while parsing the markup. An example is rebalancing unclosed quotation marks or even adding quotation marks to unquoted parameters. |
Affected environments
The following environments are susceptible to an XSS attack:
- Web servers
- Application servers
- Web application environments
How to prevent
This section describes the top best practices designed to specifically protect your code:
- Sanitize data input in an HTTP request before reflecting it back, ensuring all data is validated, filtered or escaped before echoing anything back to the user, such as the values of query parameters during searches.
- Convert special characters such as
?
,&
,/
,<
,>
and spaces to their respective HTML or URL encoded equivalents. - Give users the option to disable client-side scripts.
- Redirect invalid requests.
- Detect simultaneous logins, including those from two separate IP addresses, and invalidate those sessions.
- Use and enforce a Content Security Policy (source: Wikipedia) to disable any features that might be manipulated for an XSS attack.
- Read the documentation for any of the libraries referenced in your code to understand which elements allow for embedded HTML.
Remediation
Upgrade org.hibernate:hibernate-validator
to version 6.0.18.Final, 6.1.0.Final or higher.
References
medium severity
- Vulnerable module: mysql:mysql-connector-java
- Introduced through: mysql:mysql-connector-java@8.0.11
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › mysql:mysql-connector-java@8.0.11Remediation: Upgrade to mysql:mysql-connector-java@8.0.16.
Overview
mysql:mysql-connector-java provides connectivity for client applications developed in the Java programming language with MySQL Connector/J, a driver that implements the Java Database Connectivity (JDBC) API.
Affected versions of this package are vulnerable to Privilege Escalation. A user with high privileges who is logged onto the infrastructure where MySQL Connectors executes to compromise MySQL Connectors. Successful attacks require human interaction from a person other than the attacker.
Remediation
Upgrade mysql:mysql-connector-java
to version 8.0.16 or higher.
References
medium severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.1.1.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Arbitrary Code Execution. ** DISPUTED ** The DebuggingInterceptor component in Apache Struts before 2.3.1.1, when developer mode is used, allows remote attackers to execute arbitrary commands via unspecified vectors. NOTE: the vendor characterizes this behavior as not "a security vulnerability itself."
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.3.1.1 or higher.
References
medium severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.4.1.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Cross-site Request Forgery (CSRF). The token check mechanism does not properly validate the token name configuration parameter, which allows remote attackers to perform cross-site request forgery (CSRF) attacks by setting the token name configuration parameter to a session attribute.
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.3.4.1 or higher.
References
medium severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.20.
Overview
It uses predictable <s:token/>
values, which allows remote attackers to bypass the CSRF protection mechanism.
References
- https://github.com/apache/struts/commit/1f301038a751bf16e525607c3db513db835b2999%23diff-fdda7326ddc2f0d989ed7beaf9f67982
- https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-7809
- http://blog.h3xstream.com/2014/12/predicting-struts-csrf-token-cve-2014.html
- http://struts.apache.org/docs/s2-023.html
medium severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.20.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Cross-site Scripting (XSS). When debug mode is turned on, under certain conditions an arbitrary script may be executed in the 'Problem Report' screen. Also if JSP files are exposed to be accessed directly it's possible to execute an arbitrary script.
Details
A cross-site scripting attack occurs when the attacker tricks a legitimate web-based application or site to accept a request as originating from a trusted source.
This is done by escaping the context of the web application; the web application then delivers that data to its users along with other trusted dynamic content, without validating it. The browser unknowingly executes malicious script on the client side (through client-side languages; usually JavaScript or HTML) in order to perform actions that are otherwise typically blocked by the browser’s Same Origin Policy.
Injecting malicious code is the most prevalent manner by which XSS is exploited; for this reason, escaping characters in order to prevent this manipulation is the top method for securing code against this vulnerability.
Escaping means that the application is coded to mark key characters, and particularly key characters included in user input, to prevent those characters from being interpreted in a dangerous context. For example, in HTML, <
can be coded as <
; and >
can be coded as >
; in order to be interpreted and displayed as themselves in text, while within the code itself, they are used for HTML tags. If malicious content is injected into an application that escapes special characters and that malicious content uses <
and >
as HTML tags, those characters are nonetheless not interpreted as HTML tags by the browser if they’ve been correctly escaped in the application code and in this way the attempted attack is diverted.
The most prominent use of XSS is to steal cookies (source: OWASP HttpOnly) and hijack user sessions, but XSS exploits have been used to expose sensitive information, enable access to privileged services and functionality and deliver malware.
Types of attacks
There are a few methods by which XSS can be manipulated:
Type | Origin | Description |
---|---|---|
Stored | Server | The malicious code is inserted in the application (usually as a link) by the attacker. The code is activated every time a user clicks the link. |
Reflected | Server | The attacker delivers a malicious link externally from the vulnerable web site application to a user. When clicked, malicious code is sent to the vulnerable web site, which reflects the attack back to the user’s browser. |
DOM-based | Client | The attacker forces the user’s browser to render a malicious page. The data in the page itself delivers the cross-site scripting data. |
Mutated | The attacker injects code that appears safe, but is then rewritten and modified by the browser, while parsing the markup. An example is rebalancing unclosed quotation marks or even adding quotation marks to unquoted parameters. |
Affected environments
The following environments are susceptible to an XSS attack:
- Web servers
- Application servers
- Web application environments
How to prevent
This section describes the top best practices designed to specifically protect your code:
- Sanitize data input in an HTTP request before reflecting it back, ensuring all data is validated, filtered or escaped before echoing anything back to the user, such as the values of query parameters during searches.
- Convert special characters such as
?
,&
,/
,<
,>
and spaces to their respective HTML or URL encoded equivalents. - Give users the option to disable client-side scripts.
- Redirect invalid requests.
- Detect simultaneous logins, including those from two separate IP addresses, and invalidate those sessions.
- Use and enforce a Content Security Policy (source: Wikipedia) to disable any features that might be manipulated for an XSS attack.
- Read the documentation for any of the libraries referenced in your code to understand which elements allow for embedded HTML.
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.3.20 or higher.
References
medium severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.28.
Overview
org.apache.struts:struts2-core
Cross-site Scripting (XSS) vulnerability in the URLDecoder function in JRE before 1.8, as used in Apache Struts 2.x before 2.3.28, when using a single byte page encoding, allows remote attackers to inject arbitrary web script or HTML via multi-byte characters in a url-encoded parameter.
Details
<
References
medium severity
- Vulnerable module: mysql:mysql-connector-java
- Introduced through: mysql:mysql-connector-java@8.0.11
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › mysql:mysql-connector-java@8.0.11Remediation: Upgrade to mysql:mysql-connector-java@8.0.27.
Overview
mysql:mysql-connector-java is a provides connectivity for client applications developed in the Java programming language with MySQL Connector/J, a driver that implements the Java Database Connectivity (JDBC) API.
Affected versions of this package are vulnerable to XML External Entity (XXE) Injection via the getSource()
method, due to a missing check for external entities.
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 mysql:mysql-connector-java
to version 8.0.27 or higher.
References
medium severity
- Vulnerable module: org.apache.activemq:activemq-broker
- Introduced through: org.apache.activemq:activemq-broker@5.8.0
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.activemq:activemq-broker@5.8.0Remediation: Upgrade to org.apache.activemq:activemq-broker@5.15.12.
Overview
org.apache.activemq:activemq-broker is a high performance Apache 2.0 licensed Message Broker and JMS 1.1 implementation.
Affected versions of this package are vulnerable to Improper Authentication. Apache ActiveMQ uses LocateRegistry.createRegistry()
to create the JMX RMI registry and binds the server to the jmxrmi
entry. It is possible to connect to the registry without authentication and call the rebind method to rebind jmxrmi to something else. If an attacker creates another server to proxy the original, and bound that, he effectively becomes a man in the middle and is able to intercept the credentials when an user connects. Upgrade to Apache ActiveMQ 5.15.12.
Remediation
Upgrade org.apache.activemq:activemq-broker
to version 5.15.12 or higher.
References
medium severity
- Vulnerable module: com.google.protobuf:protobuf-java
- Introduced through: mysql:mysql-connector-java@8.0.11
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › mysql:mysql-connector-java@8.0.11 › com.google.protobuf:protobuf-java@2.6.0Remediation: Upgrade to mysql:mysql-connector-java@8.0.31.
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
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.15.3.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Bypass Access Controls. It allows remote attackers to bypass access controls via a crafted action: prefix.
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.3.15.3 or higher.
References
medium severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.20.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Classloader manipulation via CookieInterceptor. When a wildcard cookiesName value is used, CookieInterceptor does not properly restrict access to the getClass method, which allows remote attackers to "manipulate" the ClassLoader and modify session state via a crafted request. NOTE: this vulnerability exists because of an incomplete fix for CVE-2014-0113.
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.3.20 or higher.
References
medium severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.15.
Overview
org.apache.struts:struts2-core
Multiple open redirect vulnerabilities in Apache Struts 2.0.0 through 2.3.15 allow remote attackers to redirect users to arbitrary web sites and conduct phishing attacks via a URL in a parameter using the (1) redirect: or (2) redirectAction: prefix.
References
medium severity
- Vulnerable module: commons-io:commons-io
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6 › commons-io:commons-io@1.3.2Remediation: Upgrade to org.apache.struts:struts2-core@6.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 Directory Traversal via calling the method FileNameUtils.normalize using an improper string like //../foo
or \\..\foo
, which may allow access to files in the parent directory.
Details
A Directory Traversal attack (also known as path traversal) aims to access files and directories that are stored outside the intended folder. By manipulating files with "dot-dot-slash (../)" sequences and its variations, or by using absolute file paths, it may be possible to access arbitrary files and directories stored on file system, including application source code, configuration, and other critical system files.
Directory Traversal vulnerabilities can be generally divided into two types:
- Information Disclosure: Allows the attacker to gain information about the folder structure or read the contents of sensitive files on the system.
st
is a module for serving static files on web pages, and contains a vulnerability of this type. In our example, we will serve files from the public
route.
If an attacker requests the following URL from our server, it will in turn leak the sensitive private key of the root user.
curl http://localhost:8080/public/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/root/.ssh/id_rsa
Note %2e
is the URL encoded version of .
(dot).
- Writing arbitrary files: Allows the attacker to create or replace existing files. This type of vulnerability is also known as
Zip-Slip
.
One way to achieve this is by using a malicious zip
archive that holds path traversal filenames. When each filename in the zip archive gets concatenated to the target extraction folder, without validation, the final path ends up outside of the target folder. If an executable or a configuration file is overwritten with a file containing malicious code, the problem can turn into an arbitrary code execution issue quite easily.
The following is an example of a zip
archive with one benign file and one malicious file. Extracting the malicious file will result in traversing out of the target folder, ending up in /root/.ssh/
overwriting the authorized_keys
file:
2018-04-15 22:04:29 ..... 19 19 good.txt
2018-04-15 22:04:42 ..... 20 20 ../../../../../../root/.ssh/authorized_keys
Remediation
Upgrade commons-io:commons-io
to version 2.7 or higher.
References
medium severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.1.2.
Overview
org.apache.struts:struts2-core
Apache Struts 2.3.1.1 and earlier provides interfaces that do not properly restrict access to collections such as the session and request collections, which might allow remote attackers to modify run-time data values via a crafted parameter to an application that implements an affected interface, as demonstrated by the SessionAware, RequestAware, ApplicationAware, ServletRequestAware, ServletResponseAware, and ParameterAware interfaces. NOTE: the vendor disputes the significance of this report because of an "easy work-around in existing apps by configuring the interceptor."
References
medium severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.2.1.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Arbitrary OGNL Statement Execution. ParametersInterceptor
as used in Apache Struts and other products, does not properly restrict #
(pound sign) references to context objects, which allows remote attackers to execute Object-Graph Navigation Language (OGNL) statements and modify server-side context objects, as demonstrated by use of a \u0023
representation for the #
character.
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.2.1 or higher.
References
medium severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.16.1.
Overview
org.apache.struts:struts2-core
The ParametersInterceptor in Apache Struts before 2.3.16.1 allows remote attackers to "manipulate" the ClassLoader via the class parameter, which is passed to the getClass method.
References
medium severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.5.32.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Denial of Service when certain fields exceed the maxStringLength
limit during multipart requests. An attacker can exploit this to leave uploaded files in the struts.multipart.saveDir
even after the request has been denied resulting in excessive disk usage.
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.5.32, 6.1.2.2, 6.3.0.1 or higher.
References
medium severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.1.1.
Overview
org.apache.struts:struts2-core
OGNL provides, among other features, extensive expression evaluation capabilities. The vulnerability allows a malicious user to bypass all the protections (regex pattern, deny method invocation) built into the ParametersInterceptor, thus being able to inject a malicious expression in any exposed string variable for further evaluation.
A similar behavior was already addressed in S2-003 and S2-005, but it turned out that the resulting fix based on whitelisting acceptable parameter names closed the vulnerability only partially. Regular expression in ParametersInterceptor matches top'foo' as a valid expression, which OGNL treats as (top['foo'])(0) and evaluates the value of 'foo' action parameter as an OGNL expression. This lets malicious users put arbitrary OGNL statements into any String variable exposed by an action and have it evaluated as an OGNL expression and since OGNL statement is in HTTP parameter value attacker can use blacklisted characters (e.g. #) to disable method execution and execute arbitrary methods, bypassing the ParametersInterceptor and OGNL library protections.
References
medium severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.1.8.1.
Overview
org.apache.struts:struts2-core
The OGNL extensive expression evaluation capability in XWork in Struts 2.0.0 through 2.1.8.1, as used in Atlassian Fisheye, Crucible, and possibly other products, uses a permissive whitelist, which allows remote attackers to modify server-side context objects and bypass the "#" protection mechanism in ParameterInterceptors via the (1) #context, (2) #_memberAccess, (3) #root, (4) #this, (5) #_typeResolver, (6) #_classResolver, (7) #_traceEvaluations, (8) #_lastEvaluation, (9) #_keepLastEvaluation, and possibly other OGNL context variables, a different vulnerability than CVE-2008-6504.
References
medium severity
- Vulnerable module: org.hibernate:hibernate-validator
- Introduced through: org.hibernate:hibernate-validator@5.2.0.Final
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.hibernate:hibernate-validator@5.2.0.FinalRemediation: Upgrade to org.hibernate:hibernate-validator@6.0.23.Final.
Overview
org.hibernate:hibernate-validator is a Hibernate Validator Engine Relocation Artifact.
Affected versions of this package are vulnerable to Improper Input Validation. A bug in the message interpolation processor enables invalid EL expressions to be evaluated as if they were valid. This flaw allows attackers to bypass input sanitation (escaping, stripping) controls that developers may have put in place when handling user-controlled data in error messages.
Remediation
Upgrade org.hibernate:hibernate-validator
to version 6.0.19.Final, 6.1.3.Final or higher.
References
medium severity
- Vulnerable module: commons-fileupload:commons-fileupload
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6 › commons-fileupload:commons-fileupload@1.2.1Remediation: Upgrade to org.apache.struts:struts2-core@2.3.15.
Overview
commons-fileupload:commons-fileupload is a component that provides a simple yet flexible means of adding support for multipart file upload functionality to servlets and web applications.
Affected versions of this package are vulnerable to Time of Check Time of Use (TOCTOU) if the attacker has write access to the /tmp directory.
Details
Commons FileUpload provides file upload capability for Servlets and web applications. During the upload process, FileUpload may (depending on configuration) save the uploaded file temporarily on disk. By default this will be in the system wide tmp directory. Because the temporary files have predictable file names and are stored in a publicly writeable location they are vulnerable to a TOCTOU attack.
A successful attack requires that the attacker has write access to the tmp directory. The attack can be prevented by setting the repository to a non-publicly writeable location. The documentation for FileUpload does not highlight the potential security implications of not setting a repository, nor do the provided examples set a repository. This may have caused users to use FileUpload in an insecure manner.
Remediation
Upgrade commons-fileupload:commons-fileupload
to version 1.3 or higher.
References
medium severity
- Vulnerable module: org.apache.activemq:activemq-client
- Introduced through: org.apache.activemq:activemq-broker@5.8.0
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.activemq:activemq-broker@5.8.0 › org.apache.activemq:activemq-client@5.8.0Remediation: Upgrade to org.apache.activemq:activemq-broker@5.9.0.
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.activemq:activemq-broker@5.8.0 › org.apache.activemq:activemq-openwire-legacy@5.8.0 › org.apache.activemq:activemq-client@5.8.0Remediation: Upgrade to org.apache.activemq:activemq-broker@5.9.0.
Overview
org.apache.activemq:activemq-client is a high performance Apache 2.0 licensed Message Broker and JMS 1.1 implementation.
Affected versions of this package are vulnerable to Cross-site Scripting (XSS). The vulnerability exists in scheduled.jsp
in ActiveMQ that allows remote attackers to inject arbitrary web script or HTML via vectors involving the "cron of a message."
Details
A cross-site scripting attack occurs when the attacker tricks a legitimate web-based application or site to accept a request as originating from a trusted source.
This is done by escaping the context of the web application; the web application then delivers that data to its users along with other trusted dynamic content, without validating it. The browser unknowingly executes malicious script on the client side (through client-side languages; usually JavaScript or HTML) in order to perform actions that are otherwise typically blocked by the browser’s Same Origin Policy.
Injecting malicious code is the most prevalent manner by which XSS is exploited; for this reason, escaping characters in order to prevent this manipulation is the top method for securing code against this vulnerability.
Escaping means that the application is coded to mark key characters, and particularly key characters included in user input, to prevent those characters from being interpreted in a dangerous context. For example, in HTML, <
can be coded as <
; and >
can be coded as >
; in order to be interpreted and displayed as themselves in text, while within the code itself, they are used for HTML tags. If malicious content is injected into an application that escapes special characters and that malicious content uses <
and >
as HTML tags, those characters are nonetheless not interpreted as HTML tags by the browser if they’ve been correctly escaped in the application code and in this way the attempted attack is diverted.
The most prominent use of XSS is to steal cookies (source: OWASP HttpOnly) and hijack user sessions, but XSS exploits have been used to expose sensitive information, enable access to privileged services and functionality and deliver malware.
Types of attacks
There are a few methods by which XSS can be manipulated:
Type | Origin | Description |
---|---|---|
Stored | Server | The malicious code is inserted in the application (usually as a link) by the attacker. The code is activated every time a user clicks the link. |
Reflected | Server | The attacker delivers a malicious link externally from the vulnerable web site application to a user. When clicked, malicious code is sent to the vulnerable web site, which reflects the attack back to the user’s browser. |
DOM-based | Client | The attacker forces the user’s browser to render a malicious page. The data in the page itself delivers the cross-site scripting data. |
Mutated | The attacker injects code that appears safe, but is then rewritten and modified by the browser, while parsing the markup. An example is rebalancing unclosed quotation marks or even adding quotation marks to unquoted parameters. |
Affected environments
The following environments are susceptible to an XSS attack:
- Web servers
- Application servers
- Web application environments
How to prevent
This section describes the top best practices designed to specifically protect your code:
- Sanitize data input in an HTTP request before reflecting it back, ensuring all data is validated, filtered or escaped before echoing anything back to the user, such as the values of query parameters during searches.
- Convert special characters such as
?
,&
,/
,<
,>
and spaces to their respective HTML or URL encoded equivalents. - Give users the option to disable client-side scripts.
- Redirect invalid requests.
- Detect simultaneous logins, including those from two separate IP addresses, and invalidate those sessions.
- Use and enforce a Content Security Policy (source: Wikipedia) to disable any features that might be manipulated for an XSS attack.
- Read the documentation for any of the libraries referenced in your code to understand which elements allow for embedded HTML.
Remediation
Upgrade org.apache.activemq:activemq-client
to version 5.9.0 or higher.
References
medium severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.5.31.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling due to improper handling of getProperty()
by the XWorkListPropertyAccessor
class.
Exploiting this vulnerability is possible if the developer has set CreateIfNull
to true for the underlying Collection type field.
Workaround
Set CreateIfNull
to false for Collection type fields (it is false by default if not set).
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.5.31, 6.1.2.1 or higher.
References
low severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.2.3.
Overview
org.apache.struts:struts2-core is a popular open-source framework for developing web applications in the Java programming language.
Affected versions of this package are vulnerable to multiple Cross-site Scripting (XSS) vulnerabilities allowing remote attackers to inject arbitrary web script or HTML via vectors involving (1) an action name, (2) the action attribute of an s:submit
element, or (3) the method attribute of an s:submit
element.
Details
Remediation
Upgrade org.apache.struts:struts2-core
to version 2.2.3 or higher.
References
low severity
- Vulnerable module: org.apache.struts:struts2-core
- Introduced through: org.apache.struts:struts2-core@2.1.6
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.struts:struts2-core@2.1.6Remediation: Upgrade to org.apache.struts:struts2-core@2.3.20.
Overview
org.apache.struts:struts2-core
Affected versions of the package are vulnerable to Cross-site Scripting (XSS) when debug mode is switched on or JSPs are exposed in production environment.
Details
<
References
low severity
- Vulnerable module: org.apache.activemq:activemq-client
- Introduced through: org.apache.activemq:activemq-broker@5.8.0
Detailed paths
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.activemq:activemq-broker@5.8.0 › org.apache.activemq:activemq-client@5.8.0Remediation: Upgrade to org.apache.activemq:activemq-broker@5.14.5.
-
Introduced through: yevster/App-BOM-ination@yevster/App-BOM-ination#fd43c8cf0318e9d0352e6dc0353abac09aae6cca › org.apache.activemq:activemq-broker@5.8.0 › org.apache.activemq:activemq-openwire-legacy@5.8.0 › org.apache.activemq:activemq-client@5.8.0Remediation: Upgrade to org.apache.activemq:activemq-broker@5.14.5.
Overview
org.apache.activemq:activemq-client is a high performance Apache 2.0 licensed Message Broker and JMS 1.1 implementation.
Affected versions of this package are vulnerable to Denial of Service (DoS) in the ActiveMQConnection
class. An attacker could use this flaw to achieve denial of service on a client.
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.activemq:activemq-client
to version 5.14.5 or higher.