Vulnerabilities

24 via 132 paths

Dependencies

93

Source

GitHub

Find, fix and prevent vulnerabilities in your code.

Issue type
  • 24
  • 2
Severity
  • 1
  • 10
  • 10
  • 5
Status
  • 26
  • 0
  • 0

critical severity

HTTP Request Smuggling

  • Vulnerable module: org.eclipse.jetty:jetty-http
  • Introduced through: org.eclipse.jetty:jetty-servlet@9.4.58.v20250814

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.eclipse.jetty:jetty-servlet@9.4.58.v20250814 org.eclipse.jetty:jetty-security@9.4.58.v20250814 org.eclipse.jetty:jetty-server@9.4.58.v20250814 org.eclipse.jetty:jetty-http@9.4.58.v20250814

Overview

org.eclipse.jetty:jetty-http is an is a http module for jetty server.

Affected versions of this package are vulnerable to HTTP Request Smuggling in the HTTP/1.1 parser (HttpParser.java). An attacker can inject additional HTTP requests with chunked transfer encoding with improperly terminated quoted strings.

Remediation

Upgrade org.eclipse.jetty:jetty-http to version 12.0.33, 12.1.7 or higher.

References

high severity

Uncontrolled Recursion

  • Vulnerable module: commons-lang:commons-lang
  • Introduced through: org.constretto:constretto-core@2.2.3 and org.constretto:constretto-spring@2.2.3

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.constretto:constretto-core@2.2.3 org.constretto:constretto-api@2.2.3 commons-lang:commons-lang@2.6
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.constretto:constretto-spring@2.2.3 org.constretto:constretto-api@2.2.3 commons-lang:commons-lang@2.6
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.constretto:constretto-spring@2.2.3 org.constretto:constretto-core@2.2.3 org.constretto:constretto-api@2.2.3 commons-lang:commons-lang@2.6

Overview

Affected versions of this package are vulnerable to Uncontrolled Recursion via the ClassUtils.getClass function. An attacker can cause the application to terminate unexpectedly by providing excessively long input values.

Remediation

There is no fixed version for commons-lang:commons-lang.

References

high severity

Allocation of Resources Without Limits or Throttling

  • Vulnerable module: com.fasterxml.jackson.core:jackson-core
  • Introduced through: com.fasterxml.jackson.core:jackson-core@2.15.2 and org.flywaydb:flyway-core@9.22.3

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService com.fasterxml.jackson.core:jackson-core@2.15.2
    Remediation: Upgrade to com.fasterxml.jackson.core:jackson-core@2.18.6.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.flywaydb:flyway-core@9.22.3 com.fasterxml.jackson.dataformat:jackson-dataformat-toml@2.15.2 com.fasterxml.jackson.core:jackson-databind@2.15.2 com.fasterxml.jackson.core:jackson-core@2.15.2
    Remediation: Upgrade to org.flywaydb:flyway-core@11.8.1.

Overview

com.fasterxml.jackson.core:jackson-core is a Core Jackson abstractions, basic JSON streaming API implementation

Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling in which the non-blocking async JSON parser can be made to bypass the maxNumberLength constraint (default: 1000 characters) defined in StreamReadConstraints. An attacker can cause excessive memory allocation and CPU exhaustion by submitting JSON documents containing extremely long numeric values through the asynchronous parser interface.

PoC

The following JUnit 5 test demonstrates the vulnerability. It shows that the async parser accepts a 5,000-digit number, whereas the limit should be 1,000.

package tools.jackson.core.unittest.dos;

import java.nio.charset.StandardCharsets;

import org.junit.jupiter.api.Test;

import tools.jackson.core.*;
import tools.jackson.core.exc.StreamConstraintsException;
import tools.jackson.core.json.JsonFactory;
import tools.jackson.core.json.async.NonBlockingByteArrayJsonParser;

import static org.junit.jupiter.api.Assertions.*;

/**
 * POC: Number Length Constraint Bypass in Non-Blocking (Async) JSON Parsers
 *
 * Authors: sprabhav7, rohan-repos
 * 
 * maxNumberLength default = 1000 characters (digits).
 * A number with more than 1000 digits should be rejected by any parser.
 *
 * BUG: The async parser never calls resetInt()/resetFloat() which is where
 * validateIntegerLength()/validateFPLength() lives. Instead it calls
 * _valueComplete() which skips all number length validation.
 *
 * CWE-770: Allocation of Resources Without Limits or Throttling
 */
class AsyncParserNumberLengthBypassTest {

    private static final int MAX_NUMBER_LENGTH = 1000;
    private static final int TEST_NUMBER_LENGTH = 5000;

    private final JsonFactory factory = new JsonFactory();

    // CONTROL: Sync parser correctly rejects a number exceeding maxNumberLength
    @Test
    void syncParserRejectsLongNumber() throws Exception {
        byte[] payload = buildPayloadWithLongInteger(TEST_NUMBER_LENGTH);
        
        // Output to console
        System.out.println("[SYNC] Parsing " + TEST_NUMBER_LENGTH + "-digit number (limit: " + MAX_NUMBER_LENGTH + ")");
        try {
            try (JsonParser p = factory.createParser(ObjectReadContext.empty(), payload)) {
                while (p.nextToken() != null) {
                    if (p.currentToken() == JsonToken.VALUE_NUMBER_INT) {
                        System.out.println("[SYNC] Accepted number with " + p.getText().length() + " digits — UNEXPECTED");
                    }
                }
            }
            fail("Sync parser must reject a " + TEST_NUMBER_LENGTH + "-digit number");
        } catch (StreamConstraintsException e) {
            System.out.println("[SYNC] Rejected with StreamConstraintsException: " + e.getMessage());
        }
    }

    // VULNERABILITY: Async parser accepts the SAME number that sync rejects
    @Test
    void asyncParserAcceptsLongNumber() throws Exception {
        byte[] payload = buildPayloadWithLongInteger(TEST_NUMBER_LENGTH);

        NonBlockingByteArrayJsonParser p =
            (NonBlockingByteArrayJsonParser) factory.createNonBlockingByteArrayParser(ObjectReadContext.empty());
        p.feedInput(payload, 0, payload.length);
        p.endOfInput();

        boolean foundNumber = false;
        try {
            while (p.nextToken() != null) {
                if (p.currentToken() == JsonToken.VALUE_NUMBER_INT) {
                    foundNumber = true;
                    String numberText = p.getText();
                    assertEquals(TEST_NUMBER_LENGTH, numberText.length(),
                        "Async parser silently accepted all " + TEST_NUMBER_LENGTH + " digits");
                }
            }
            // Output to console
            System.out.println("[ASYNC INT] Accepted number with " + TEST_NUMBER_LENGTH + " digits — BUG CONFIRMED");
            assertTrue(foundNumber, "Parser should have produced a VALUE_NUMBER_INT token");
        } catch (StreamConstraintsException e) {
            fail("Bug is fixed — async parser now correctly rejects long numbers: " + e.getMessage());
        }
        p.close();
    }

    private byte[] buildPayloadWithLongInteger(int numDigits) {
        StringBuilder sb = new StringBuilder(numDigits + 10);
        sb.append("{\"v\":");
        for (int i = 0; i < numDigits; i++) {
            sb.append((char) ('1' + (i % 9)));
        }
        sb.append('}');
        return sb.toString().getBytes(StandardCharsets.UTF_8);
    }
}

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.fasterxml.jackson.core:jackson-core to version 2.18.6, 2.21.1 or higher.

References

high severity

Allocation of Resources Without Limits or Throttling

  • Vulnerable module: com.fasterxml.jackson.core:jackson-core
  • Introduced through: com.fasterxml.jackson.core:jackson-core@2.15.2 and org.flywaydb:flyway-core@9.22.3

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService com.fasterxml.jackson.core:jackson-core@2.15.2
    Remediation: Upgrade to com.fasterxml.jackson.core:jackson-core@2.18.7.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.flywaydb:flyway-core@9.22.3 com.fasterxml.jackson.dataformat:jackson-dataformat-toml@2.15.2 com.fasterxml.jackson.core:jackson-databind@2.15.2 com.fasterxml.jackson.core:jackson-core@2.15.2
    Remediation: Upgrade to org.flywaydb:flyway-core@11.8.1.

Overview

com.fasterxml.jackson.core:jackson-core is a Core Jackson abstractions, basic JSON streaming API implementation

Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling in the enforcement of document length constraints in blocking, async, and DataInput parser processes. An attacker can cause excessive resource consumption by submitting oversized JSON documents that bypass configured size limits.

Remediation

Upgrade com.fasterxml.jackson.core:jackson-core to version 2.18.7, 2.21.2 or higher.

References

high severity

Incorrect Authorization

  • Vulnerable module: org.springframework:spring-core
  • Introduced through: org.springframework:spring-core@5.3.39, org.springframework:spring-context@5.3.39 and others

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-core@6.2.11.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.2.11.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-web@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-web@6.2.11.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.glassfish.jersey.ext:jersey-spring4@2.48 org.springframework:spring-core@5.3.39
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-beans@6.2.11.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-tx@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-tx@6.2.11.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-jdbc@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-jdbc@6.2.11.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-expression@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.2.11.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.glassfish.jersey.ext:jersey-spring4@2.48 org.springframework:spring-web@5.3.39 org.springframework:spring-core@5.3.39
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.2.11.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-web@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-web@6.2.11.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-tx@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-tx@6.2.11.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-jdbc@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-jdbc@6.2.11.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-aop@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.2.11.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-jdbc@5.3.39 org.springframework:spring-tx@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-jdbc@6.2.11.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-aop@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.2.11.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-jdbc@5.3.39 org.springframework:spring-tx@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-jdbc@6.2.11.

Overview

org.springframework:spring-core is a core package within the spring-framework that contains multiple classes and utilities.

Affected versions of this package are vulnerable to Incorrect Authorization via the AnnotationsScanner and AnnotatedMethod class. An attacker can gain unauthorized access to sensitive information by exploiting improper resolution of annotations on methods within type hierarchies that use parameterized supertypes with unbounded generics.

Note: This is only exploitable if security annotations are used on methods in generic superclasses or generic interfaces and the @EnableMethodSecurity feature is enabled.

Remediation

Upgrade org.springframework:spring-core to version 6.2.11 or higher.

References

high severity
new

Inefficient Algorithmic Complexity

  • Vulnerable module: org.springframework:spring-expression
  • Introduced through: org.springframework:spring-context@5.3.39 and org.constretto:constretto-spring@2.2.3

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-expression@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.constretto:constretto-spring@2.2.3 org.springframework:spring-context@5.3.39 org.springframework:spring-expression@5.3.39

Overview

Affected versions of this package are vulnerable to Inefficient Algorithmic Complexity via evaluation of user-controlled Spring Expression Language (SpEL) expressions. An attacker can cause denial of service by supplying specially crafted SpEL expressions that trigger excessive CPU or memory consumption during expression evaluation, leading to application degradation or unavailability.

Remediation

Upgrade org.springframework:spring-expression to version 6.0.0, 6.2.19, 7.0.8 or higher.

References

high severity
new

Integer Overflow or Wraparound

  • Vulnerable module: org.springframework:spring-expression
  • Introduced through: org.springframework:spring-context@5.3.39 and org.constretto:constretto-spring@2.2.3

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-expression@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.constretto:constretto-spring@2.2.3 org.springframework:spring-context@5.3.39 org.springframework:spring-expression@5.3.39

Overview

Affected versions of this package are vulnerable to Integer Overflow or Wraparound via integer overflow during Spring Expression Language (SpEL) evaluation. An attacker can cause denial of service by supplying a specially crafted SpEL expression that triggers an integer overflow condition, leading to excessive resource consumption during expression processing and potentially rendering the application unavailable.

Remediation

Upgrade org.springframework:spring-expression to version 6.0.0 or higher.

References

high severity

Relative Path Traversal

  • Vulnerable module: org.springframework:spring-beans
  • Introduced through: org.springframework:spring-beans@5.3.39, org.springframework:spring-context@5.3.39 and others

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-beans@5.3.39
    Remediation: Upgrade to org.springframework:spring-beans@6.2.10.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-beans@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.2.10.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-web@5.3.39 org.springframework:spring-beans@5.3.39
    Remediation: Upgrade to org.springframework:spring-web@6.2.10.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-tx@5.3.39 org.springframework:spring-beans@5.3.39
    Remediation: Upgrade to org.springframework:spring-tx@6.2.10.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-jdbc@5.3.39 org.springframework:spring-beans@5.3.39
    Remediation: Upgrade to org.springframework:spring-jdbc@6.2.10.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-aop@5.3.39 org.springframework:spring-beans@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.2.10.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-jdbc@5.3.39 org.springframework:spring-tx@5.3.39 org.springframework:spring-beans@5.3.39
    Remediation: Upgrade to org.springframework:spring-jdbc@6.2.10.

Overview

org.springframework:spring-beans is a package that is the basis for Spring Framework's IoC container. The BeanFactory interface provides an advanced configuration mechanism capable of managing any type of object.

Affected versions of this package are vulnerable to Relative Path Traversal when deployed on non-compliant Servlet containers. An unauthenticated attacker could gain access to files and directories outside the intended web root.

Notes:

  1. This is only exploitable if the application is deployed as a WAR or with an embedded Servlet container, the Servlet container does not reject suspicious sequences and the application serves static resources with Spring resource handling.

  2. Applications deployed on Apache Tomcat or Eclipse Jetty are not vulnerable, as long as default security features are not disabled in the configuration.

  3. This vulnerability was also fixed in the commercial versions 6.1.22 and 5.3.44.

Remediation

Upgrade org.springframework:spring-beans to version 6.2.10 or higher.

References

high severity
new

Allocation of Resources Without Limits or Throttling

  • Vulnerable module: org.springframework:spring-core
  • Introduced through: org.springframework:spring-core@5.3.39, org.springframework:spring-context@5.3.39 and others

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-core@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-web@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-web@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.glassfish.jersey.ext:jersey-spring4@2.48 org.springframework:spring-core@5.3.39
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-beans@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-tx@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-tx@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-jdbc@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-jdbc@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-expression@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.glassfish.jersey.ext:jersey-spring4@2.48 org.springframework:spring-web@5.3.39 org.springframework:spring-core@5.3.39
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-web@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-web@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-tx@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-tx@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-jdbc@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-jdbc@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-aop@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-jdbc@5.3.39 org.springframework:spring-tx@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-jdbc@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-aop@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-jdbc@5.3.39 org.springframework:spring-tx@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-jdbc@6.0.0.

Overview

org.springframework:spring-core is a core package within the spring-framework that contains multiple classes and utilities.

Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling via caching of parsed Spring Expression Language (SpEL) expressions. An attacker can cause denial of service by supplying crafted user-controlled SpEL expressions that trigger unbounded growth of the expression cache. Over time, repeated evaluations can consume excessive memory, eventually leading to memory exhaustion and application unavailability.

Note: Exploitation typically requires a large number of expression evaluations, potentially millions of requests, even when reusing a single expression with dynamic inputs.

Remediation

Upgrade org.springframework:spring-core to version 6.0.0, 6.2.19, 7.0.8 or higher.

References

high severity
new

Missing Release of Memory after Effective Lifetime

  • Vulnerable module: org.springframework:spring-web
  • Introduced through: org.springframework:spring-web@5.3.39 and org.glassfish.jersey.ext:jersey-spring4@2.48

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-web@5.3.39
    Remediation: Upgrade to org.springframework:spring-web@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.glassfish.jersey.ext:jersey-spring4@2.48 org.springframework:spring-web@5.3.39

Overview

org.springframework:spring-web is a package that provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.

Affected versions of this package are vulnerable to Missing Release of Memory after Effective Lifetime via multipart request processing in Spring WebFlux. An attacker can cause denial of service by sending crafted multipart requests that trigger a memory leak during request processing, leading to excessive memory consumption and potentially causing the application to become unavailable.

Note: This is only exploitable if the application uses Spring WebFlux and exposes an endpoint that accepts multipart requests.

Remediation

Upgrade org.springframework:spring-web to version 6.0.0, 6.2.19, 7.0.8 or higher.

References

high severity

Incomplete Cleanup

  • Vulnerable module: org.springframework:spring-web
  • Introduced through: org.springframework:spring-web@5.3.39 and org.glassfish.jersey.ext:jersey-spring4@2.48

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-web@5.3.39
    Remediation: Upgrade to org.springframework:spring-web@6.2.18.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.glassfish.jersey.ext:jersey-spring4@2.48 org.springframework:spring-web@5.3.39

Overview

org.springframework:spring-web is a package that provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.

Affected versions of this package are vulnerable to Incomplete Cleanup via multipart request handling in WebFlux. An attacker can exhaust disk space by sending multipart requests with large parts that trigger creation of temporary files, which under certain conditions are not deleted after the request completes, leading to accumulation of temp files and denial of service.

Remediation

Upgrade org.springframework:spring-web to version 6.2.18, 7.0.7 or higher.

References

medium severity

Allocation of Resources Without Limits or Throttling

  • Vulnerable module: org.springframework:spring-core
  • Introduced through: org.springframework:spring-core@5.3.39, org.springframework:spring-context@5.3.39 and others

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-core@6.2.18.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.2.18.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-web@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-web@6.2.18.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.glassfish.jersey.ext:jersey-spring4@2.48 org.springframework:spring-core@5.3.39
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-beans@6.2.18.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-tx@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-tx@6.2.18.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-jdbc@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-jdbc@6.2.18.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-expression@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.2.18.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.glassfish.jersey.ext:jersey-spring4@2.48 org.springframework:spring-web@5.3.39 org.springframework:spring-core@5.3.39
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.2.18.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-web@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-web@6.2.18.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-tx@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-tx@6.2.18.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-jdbc@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-jdbc@6.2.18.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-aop@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.2.18.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-jdbc@5.3.39 org.springframework:spring-tx@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-jdbc@6.2.18.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-aop@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.2.18.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-jdbc@5.3.39 org.springframework:spring-tx@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-jdbc@6.2.18.

Overview

org.springframework:spring-core is a core package within the spring-framework that contains multiple classes and utilities.

Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling via static resource resolution. An attacker can cause denial of service by sending crafted requests that are slow to resolve when accessing file-system-backed static resources, causing HTTP connections to remain occupied and exhausting server resources.

Note: This is only exploitable if all the following are true:

  1. The application uses Spring MVC or Spring WebFlux.

  2. Static resources are served from the file system.

  3. The application is running on Windows.

Remediation

Upgrade org.springframework:spring-core to version 6.2.18, 7.0.7 or higher.

References

medium severity
new

Exposed Dangerous Method or Function

  • Vulnerable module: org.springframework:spring-expression
  • Introduced through: org.springframework:spring-context@5.3.39 and org.constretto:constretto-spring@2.2.3

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-expression@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.constretto:constretto-spring@2.2.3 org.springframework:spring-context@5.3.39 org.springframework:spring-expression@5.3.39

Overview

Affected versions of this package are vulnerable to Exposed Dangerous Method or Function via Spring Expression Language (SpEL) method invocation handling. An attacker can invoke arbitrary zero-argument methods by supplying crafted SpEL expressions, even in contexts intended to restrict method execution or provide read-only access. This may allow execution of unintended application logic and access to functionality that should not be exposed through expression evaluation.

Note: This is only exploitable if the application accepts and evaluates untrusted or user-controlled SpEL expressions.

Remediation

Upgrade org.springframework:spring-expression to version 6.0.0, 6.2.19, 7.0.8 or higher.

References

medium severity
new

HTTP Request Smuggling

  • Vulnerable module: org.springframework:spring-web
  • Introduced through: org.springframework:spring-web@5.3.39 and org.glassfish.jersey.ext:jersey-spring4@2.48

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-web@5.3.39
    Remediation: Upgrade to org.springframework:spring-web@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.glassfish.jersey.ext:jersey-spring4@2.48 org.springframework:spring-web@5.3.39

Overview

org.springframework:spring-web is a package that provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.

Affected versions of this package are vulnerable to HTTP Request Smuggling via multipart request parsing discrepancies between Spring MVC/WebFlux and intermediary security devices. An attacker can bypass Web Application Firewall (WAF) or proxy security controls by sending crafted multipart requests that are interpreted differently by the intermediary and the Spring application, allowing malicious content to evade inspection and reach the backend application.

Remediation

Upgrade org.springframework:spring-web to version 6.0.0, 6.2.19, 7.0.8 or higher.

References

medium severity

Deserialization of Untrusted Data

  • Vulnerable module: com.google.code.gson:gson
  • Introduced through: org.constretto:constretto-core@2.2.3, org.flywaydb:flyway-core@9.22.3 and others

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.constretto:constretto-core@2.2.3 com.google.code.gson:gson@2.2.4
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.flywaydb:flyway-core@9.22.3 com.google.code.gson:gson@2.2.4
    Remediation: Upgrade to org.flywaydb:flyway-core@9.22.3.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.constretto:constretto-spring@2.2.3 org.constretto:constretto-core@2.2.3 com.google.code.gson:gson@2.2.4

Overview

Affected versions of this package are vulnerable to Deserialization of Untrusted Data via the writeReplace() method in internal classes, which may allow a denial of service attack if combined with another exploit.

Details

Serialization is a process of converting an object into a sequence of bytes which can be persisted to a disk or database or can be sent through streams. The reverse process of creating object from sequence of bytes is called deserialization. Serialization is commonly used for communication (sharing objects between multiple hosts) and persistence (store the object state in a file or a database). It is an integral part of popular protocols like Remote Method Invocation (RMI), Java Management Extension (JMX), Java Messaging System (JMS), Action Message Format (AMF), Java Server Faces (JSF) ViewState, etc.

Deserialization of untrusted data (CWE-502), is when the application deserializes untrusted data without sufficiently verifying that the resulting data will be valid, letting the attacker to control the state or the flow of the execution.

Java deserialization issues have been known for years. However, interest in the issue intensified greatly in 2015, when classes that could be abused to achieve remote code execution were found in a popular library (Apache Commons Collection). These classes were used in zero-days affecting IBM WebSphere, Oracle WebLogic and many other products.

An attacker just needs to identify a piece of software that has both a vulnerable class on its path, and performs deserialization on untrusted data. Then all they need to do is send the payload into the deserializer, getting the command executed.

Developers put too much trust in Java Object Serialization. Some even de-serialize objects pre-authentication. When deserializing an Object in Java you typically cast it to an expected type, and therefore Java's strict type system will ensure you only get valid object trees. Unfortunately, by the time the type checking happens, platform code has already created and executed significant logic. So, before the final type is checked a lot of code is executed from the readObject() methods of various objects, all of which is out of the developer's control. By combining the readObject() methods of various classes which are available on the classpath of the vulnerable application, an attacker can execute functions (including calling Runtime.exec() to execute local OS commands).

Remediation

Upgrade com.google.code.gson:gson to version 2.8.9 or higher.

References

medium severity

Interpretation Conflict

  • Vulnerable module: org.eclipse.jetty:jetty-server
  • Introduced through: org.eclipse.jetty:jetty-servlet@9.4.58.v20250814

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.eclipse.jetty:jetty-servlet@9.4.58.v20250814 org.eclipse.jetty:jetty-security@9.4.58.v20250814 org.eclipse.jetty:jetty-server@9.4.58.v20250814

Overview

org.eclipse.jetty:jetty-server is a lightweight highly scalable java based web server and servlet engine.

Affected versions of this package are vulnerable to Interpretation Conflict due to inconsistent handling of invalid or unusual URIs in the parse() function on HttpURI.java‎. An attacker can bypass security controls or access restricted resources by crafting specially formatted URIs that are interpreted differently by various system components.

Remediation

Upgrade org.eclipse.jetty:jetty-server to version 12.0.31, 12.1.5 or higher.

References

medium severity
new

Regular Expression Denial of Service (ReDoS)

  • Vulnerable module: org.springframework:spring-core
  • Introduced through: org.springframework:spring-core@5.3.39, org.springframework:spring-context@5.3.39 and others

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-core@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-web@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-web@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.glassfish.jersey.ext:jersey-spring4@2.48 org.springframework:spring-core@5.3.39
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-beans@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-tx@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-tx@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-jdbc@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-jdbc@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-expression@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.glassfish.jersey.ext:jersey-spring4@2.48 org.springframework:spring-web@5.3.39 org.springframework:spring-core@5.3.39
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-web@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-web@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-tx@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-tx@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-jdbc@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-jdbc@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-aop@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-jdbc@5.3.39 org.springframework:spring-tx@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-jdbc@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-aop@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-jdbc@5.3.39 org.springframework:spring-tx@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-jdbc@6.0.0.

Overview

org.springframework:spring-core is a core package within the spring-framework that contains multiple classes and utilities.

Affected versions of this package are vulnerable to Regular Expression Denial of Service (ReDoS) via pattern processing in AntPathMatcher. An attacker can cause denial of service by supplying a crafted regular expression pattern to methods such as match(), matchStart(), or extractUriTemplateVariables(), triggering excessive backtracking and CPU consumption during pattern evaluation.

Note: This is only exploitable if attacker-controlled input is used directly or indirectly as the pattern argument to one of the affected AntPathMatcher methods.

Details

Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its original and legitimate users. There are many types of DoS attacks, ranging from trying to clog the network pipes to the system by generating a large volume of traffic from many machines (a Distributed Denial of Service - DDoS - attack) to sending crafted requests that cause a system to crash or take a disproportional amount of time to process.

The Regular expression Denial of Service (ReDoS) is a type of Denial of Service attack. Regular expressions are incredibly powerful, but they aren't very intuitive and can ultimately end up making it easy for attackers to take your site down.

Let’s take the following regular expression as an example:

regex = /A(B|C+)+D/

This regular expression accomplishes the following:

  • A The string must start with the letter 'A'
  • (B|C+)+ The string must then follow the letter A with either the letter 'B' or some number of occurrences of the letter 'C' (the + matches one or more times). The + at the end of this section states that we can look for one or more matches of this section.
  • D Finally, we ensure this section of the string ends with a 'D'

The expression would match inputs such as ABBD, ABCCCCD, ABCBCCCD and ACCCCCD

It most cases, it doesn't take very long for a regex engine to find a match:

$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCD")'
0.04s user 0.01s system 95% cpu 0.052 total

$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCX")'
1.79s user 0.02s system 99% cpu 1.812 total

The entire process of testing it against a 30 characters long string takes around ~52ms. But when given an invalid string, it takes nearly two seconds to complete the test, over ten times as long as it took to test a valid string. The dramatic difference is due to the way regular expressions get evaluated.

Most Regex engines will work very similarly (with minor differences). The engine will match the first possible way to accept the current character and proceed to the next one. If it then fails to match the next one, it will backtrack and see if there was another way to digest the previous character. If it goes too far down the rabbit hole only to find out the string doesn’t match in the end, and if many characters have multiple valid regex paths, the number of backtracking steps can become very large, resulting in what is known as catastrophic backtracking.

Let's look at how our expression runs into this problem, using a shorter string: "ACCCX". While it seems fairly straightforward, there are still four different ways that the engine could match those three C's:

  1. CCC
  2. CC+C
  3. C+CC
  4. C+C+C.

The engine has to try each of those combinations to see if any of them potentially match against the expression. When you combine that with the other steps the engine must take, we can use RegEx 101 debugger to see the engine has to take a total of 38 steps before it can determine the string doesn't match.

From there, the number of steps the engine must use to validate a string just continues to grow.

String Number of C's Number of steps
ACCCX 3 38
ACCCCX 4 71
ACCCCCX 5 136
ACCCCCCCCCCCCCCX 14 65,553

By the time the string includes 14 C's, the engine has to take over 65,000 steps just to see if the string is valid. These extreme situations can cause them to work very slowly (exponentially related to input size, as shown above), allowing an attacker to exploit this and can cause the service to excessively consume CPU, resulting in a Denial of Service.

Remediation

Upgrade org.springframework:spring-core to version 6.0.0, 6.2.19, 7.0.8 or higher.

References

medium severity
new

Session Fixation

  • Vulnerable module: org.springframework:spring-web
  • Introduced through: org.springframework:spring-web@5.3.39 and org.glassfish.jersey.ext:jersey-spring4@2.48

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-web@5.3.39
    Remediation: Upgrade to org.springframework:spring-web@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.glassfish.jersey.ext:jersey-spring4@2.48 org.springframework:spring-web@5.3.39

Overview

org.springframework:spring-web is a package that provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.

Affected versions of this package are vulnerable to Session Fixation via session fixation handling. An attacker controlling a compromised subdomain can obtain a known session identifier and subsequently cause it to be associated with an authenticated user session, allowing unauthorized use of the victim's authenticated session.

Note: This is only exploitable if an attacker can control or execute script within a subdomain of the target application (for example through a cross-site scripting vulnerability).

Remediation

Upgrade org.springframework:spring-web to version 6.0.0, 6.2.19, 7.0.8 or higher.

References

medium severity
new

Cross-site Scripting (XSS)

  • Vulnerable module: org.springframework:spring-web
  • Introduced through: org.springframework:spring-web@5.3.39 and org.glassfish.jersey.ext:jersey-spring4@2.48

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-web@5.3.39
    Remediation: Upgrade to org.springframework:spring-web@6.0.0.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.glassfish.jersey.ext:jersey-spring4@2.48 org.springframework:spring-web@5.3.39

Overview

org.springframework:spring-web is a package that provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.

Affected versions of this package are vulnerable to Cross-site Scripting (XSS) via improper escaping in JavaScriptUtils.javaScriptEscape(). An attacker can inject arbitrary JavaScript code into a web page when user-controlled input is escaped using javaScriptEscape() and subsequently embedded into a JavaScript context. Incorrect escaping may allow malicious input to break out of the intended context and execute in the victim's browser.

Details

Cross-site scripting (or XSS) is a code vulnerability that occurs when an attacker “injects” a malicious script into an otherwise trusted website. The injected script gets downloaded and executed by the end user’s browser when the user interacts with the compromised website.

This is done by escaping the context of the web application; the web application then delivers that data to its users along with other trusted dynamic content, without validating it. The browser unknowingly executes malicious script on the client side (through client-side languages; usually JavaScript or HTML) in order to perform actions that are otherwise typically blocked by the browser’s Same Origin Policy.

Injecting malicious code is the most prevalent manner by which XSS is exploited; for this reason, escaping characters in order to prevent this manipulation is the top method for securing code against this vulnerability.

Escaping means that the application is coded to mark key characters, and particularly key characters included in user input, to prevent those characters from being interpreted in a dangerous context. For example, in HTML, < can be coded as &lt; and > can be coded as &gt; in order to be interpreted and displayed as themselves in text, while within the code itself, they are used for HTML tags. If malicious content is injected into an application that escapes special characters and that malicious content uses < and > as HTML tags, those characters are nonetheless not interpreted as HTML tags by the browser if they’ve been correctly escaped in the application code and in this way the attempted attack is diverted.

The most prominent use of XSS is to steal cookies (source: OWASP HttpOnly) and hijack user sessions, but XSS exploits have been used to expose sensitive information, enable access to privileged services and functionality and deliver malware.

Types of attacks

There are a few methods by which XSS can be manipulated:

Type Origin Description
Stored Server The malicious code is inserted in the application (usually as a link) by the attacker. The code is activated every time a user clicks the link.
Reflected Server The attacker delivers a malicious link externally from the vulnerable web site application to a user. When clicked, malicious code is sent to the vulnerable web site, which reflects the attack back to the user’s browser.
DOM-based Client The attacker forces the user’s browser to render a malicious page. The data in the page itself delivers the cross-site scripting data.
Mutated The attacker injects code that appears safe, but is then rewritten and modified by the browser, while parsing the markup. An example is rebalancing unclosed quotation marks or even adding quotation marks to unquoted parameters.

Affected environments

The following environments are susceptible to an XSS attack:

  • Web servers
  • Application servers
  • Web application environments

How to prevent

This section describes the top best practices designed to specifically protect your code:

  • Sanitize data input in an HTTP request before reflecting it back, ensuring all data is validated, filtered or escaped before echoing anything back to the user, such as the values of query parameters during searches.
  • Convert special characters such as ?, &, /, <, > and spaces to their respective HTML or URL encoded equivalents.
  • Give users the option to disable client-side scripts.
  • Redirect invalid requests.
  • Detect simultaneous logins, including those from two separate IP addresses, and invalidate those sessions.
  • Use and enforce a Content Security Policy (source: Wikipedia) to disable any features that might be manipulated for an XSS attack.
  • Read the documentation for any of the libraries referenced in your code to understand which elements allow for embedded HTML.

Remediation

Upgrade org.springframework:spring-web to version 6.0.0, 6.2.19, 7.0.8 or higher.

References

medium severity

EPL-1.0 license

  • Module: junit:junit
  • Introduced through: org.constretto:constretto-core@2.2.3 and org.constretto:constretto-spring@2.2.3

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.constretto:constretto-core@2.2.3 junit:junit@4.12
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.constretto:constretto-spring@2.2.3 junit:junit@4.12
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.constretto:constretto-core@2.2.3 org.constretto:constretto-api@2.2.3 junit:junit@4.12
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.constretto:constretto-spring@2.2.3 org.constretto:constretto-api@2.2.3 junit:junit@4.12
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.constretto:constretto-spring@2.2.3 org.constretto:constretto-core@2.2.3 junit:junit@4.12
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.constretto:constretto-spring@2.2.3 org.constretto:constretto-core@2.2.3 org.constretto:constretto-api@2.2.3 junit:junit@4.12

EPL-1.0 license

medium severity

EPL-1.0 license

  • Module: org.aspectj:aspectjweaver
  • Introduced through: org.constretto:constretto-spring@2.2.3

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.constretto:constretto-spring@2.2.3 org.aspectj:aspectjweaver@1.7.4

EPL-1.0 license

low severity

Information Exposure

  • Vulnerable module: junit:junit
  • Introduced through: org.constretto:constretto-core@2.2.3 and org.constretto:constretto-spring@2.2.3

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.constretto:constretto-core@2.2.3 junit:junit@4.12
    Remediation: Upgrade to org.constretto:constretto-core@2.2.3.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.constretto:constretto-spring@2.2.3 junit:junit@4.12
    Remediation: Upgrade to org.constretto:constretto-spring@2.2.3.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.constretto:constretto-core@2.2.3 org.constretto:constretto-api@2.2.3 junit:junit@4.12
    Remediation: Upgrade to org.constretto:constretto-core@2.2.3.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.constretto:constretto-spring@2.2.3 org.constretto:constretto-api@2.2.3 junit:junit@4.12
    Remediation: Upgrade to org.constretto:constretto-spring@2.2.3.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.constretto:constretto-spring@2.2.3 org.constretto:constretto-core@2.2.3 junit:junit@4.12
    Remediation: Upgrade to org.constretto:constretto-spring@2.2.3.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.constretto:constretto-spring@2.2.3 org.constretto:constretto-core@2.2.3 org.constretto:constretto-api@2.2.3 junit:junit@4.12
    Remediation: Upgrade to org.constretto:constretto-spring@2.2.3.

Overview

junit:junit is an unit testing framework for Java

Affected versions of this package are vulnerable to Information Exposure. The JUnit4 test rule TemporaryFolder contains a local information disclosure vulnerability. On Unix like systems, the system's temporary directory is shared between all users on that system. Because of this, when files and directories are written into this directory they are, by default, readable by other users on that same system.

Note: This vulnerability does not allow other users to overwrite the contents of these directories or files. This only affects Unix like systems.

Remediation

Upgrade junit:junit to version 4.13.1 or higher.

References

low severity

Improper Handling of Case Sensitivity

  • Vulnerable module: org.springframework:spring-context
  • Introduced through: org.springframework:spring-context@5.3.39 and org.constretto:constretto-spring@2.2.3

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.1.14.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.constretto:constretto-spring@2.2.3 org.springframework:spring-context@5.3.39

Overview

Affected versions of this package are vulnerable to Improper Handling of Case Sensitivity due to String.toLowerCase() having some Locale dependent exceptions that could potentially result in fields not protected as expected.

Note:

The fix for CVE-2022-22968 made disallowedFields patterns in DataBinder case insensitive.

This vulnerability was also fixed in commercial versions 5.3.41 and 6.0.25.

Remediation

Upgrade org.springframework:spring-context to version 6.1.14 or higher.

References

low severity

Improper Handling of Case Sensitivity

  • Vulnerable module: org.springframework:spring-core
  • Introduced through: org.springframework:spring-core@5.3.39, org.springframework:spring-context@5.3.39 and others

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-core@6.1.14.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.1.14.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-web@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-web@6.1.14.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.glassfish.jersey.ext:jersey-spring4@2.48 org.springframework:spring-core@5.3.39
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-beans@6.1.14.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-tx@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-tx@6.1.14.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-jdbc@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-jdbc@6.1.14.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-expression@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.1.14.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.glassfish.jersey.ext:jersey-spring4@2.48 org.springframework:spring-web@5.3.39 org.springframework:spring-core@5.3.39
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.1.14.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-web@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-web@6.1.14.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-tx@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-tx@6.1.14.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-jdbc@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-jdbc@6.1.14.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-aop@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.1.14.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-jdbc@5.3.39 org.springframework:spring-tx@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-jdbc@6.1.14.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-context@5.3.39 org.springframework:spring-aop@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-context@6.1.14.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-jdbc@5.3.39 org.springframework:spring-tx@5.3.39 org.springframework:spring-beans@5.3.39 org.springframework:spring-core@5.3.39
    Remediation: Upgrade to org.springframework:spring-jdbc@6.1.14.

Overview

org.springframework:spring-core is a core package within the spring-framework that contains multiple classes and utilities.

Affected versions of this package are vulnerable to Improper Handling of Case Sensitivity due to String.toLowerCase() having some Locale dependent exceptions that could potentially result in fields not protected as expected.

Note:

The fix for CVE-2022-22968 made disallowedFields patterns in DataBinder case insensitive.

This vulnerability was also fixed in commercial versions 5.3.41 and 6.0.25.

Remediation

Upgrade org.springframework:spring-core to version 6.1.14 or higher.

References

low severity

Improper Handling of Case Sensitivity

  • Vulnerable module: org.springframework:spring-web
  • Introduced through: org.springframework:spring-web@5.3.39 and org.glassfish.jersey.ext:jersey-spring4@2.48

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-web@5.3.39
    Remediation: Upgrade to org.springframework:spring-web@6.1.14.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.glassfish.jersey.ext:jersey-spring4@2.48 org.springframework:spring-web@5.3.39

Overview

org.springframework:spring-web is a package that provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.

Affected versions of this package are vulnerable to Improper Handling of Case Sensitivity due to String.toLowerCase() having some Locale dependent exceptions that could potentially result in fields not protected as expected.

Note:

The fix for CVE-2022-22968 made disallowedFields patterns in DataBinder case insensitive.

This vulnerability was also fixed in commercial versions 5.3.41 and 6.0.25.

Remediation

Upgrade org.springframework:spring-web to version 6.1.14 or higher.

References

low severity

Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')

  • Vulnerable module: org.springframework:spring-web
  • Introduced through: org.springframework:spring-web@5.3.39 and org.glassfish.jersey.ext:jersey-spring4@2.48

Detailed paths

  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.springframework:spring-web@5.3.39
    Remediation: Upgrade to org.springframework:spring-web@6.2.17.
  • Introduced through: Cantara/ConfigService@Cantara/ConfigService org.glassfish.jersey.ext:jersey-spring4@2.48 org.springframework:spring-web@5.3.39

Overview

org.springframework:spring-web is a package that provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.

Affected versions of this package are vulnerable to Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection'). The vulnerability exists in the handling of Server-Sent Events (SSE) when streaming plain text data. An attacker can inject crafted data into the event stream, breaking message boundaries and corrupting the stream delivered to other clients. By controlling streamed content, an attacker can manipulate how subsequent events are parsed by the client, potentially altering application state or injecting misleading data.

Note:

This is only exploitable if the application streams attacker-controlled data via SSE using unstructured/plain-text messages instead of a structured format (e.g., JSON).

Remediation

Upgrade org.springframework:spring-web to version 6.2.17, 7.0.6 or higher.

References