CVE-2026-59274

Denial of Service
Affects
Spring Integration
in
Spring
No items found.
Versions
>= 6.1.0 <= 6.4.12, >= 6.5.0 <= 6.5.10, >= 7.0.0 < 7.0.6, >= 7.1.0 < 7.1.1
Exclamation circle icon
Patch Available

This Vulnerability has been fixed in the Never-Ending Support (NES) version offered by HeroDevs.

Overview

Spring Integration extends the Spring programming model to support the well-known Enterprise Integration Patterns, providing message channels, endpoints, transformers, and channel adapters that let Spring applications exchange data with external systems over protocols such as HTTP, JMS, AMQP, TCP/UDP, syslog, and the file system.

A Denial of Service (DoS) vulnerability (CVE-2026-59274) has been identified in the UnZipTransformer component of Spring Integration, which allows attackers to submit a small crafted archive whose expansion exhausts the disk space of the transformer work directory in the default configuration, or the JVM heap when the transformer is set to return byte arrays, and takes the application out of service.

Per OWASP: The Denial of Service (DoS) attack is focused on making a resource (site, application, server) unavailable for the purpose it was designed. There are many ways to make a service unavailable for legitimate users by manipulating network packets, programming, logical, or resources handling vulnerabilities, among others.

This issue affects the zip transformer support of Spring Integration.

Details

Module Info

Vulnerability Info

This Medium-severity vulnerability is found in the org.springframework.integration:spring-integration-zip package in the zip transformer support of Spring Integration.

The transformer iterates every entry in the supplied archive and extracts it in full, either to disk or into a byte array held in memory, without limiting the number of entries, the size of an individual entry, or the ratio between compressed and uncompressed bytes:

ZipUtil.iterate(inputStream, new ZipEntryCallback() {

    @Override
    public void process(InputStream zipEntryInputStream, ZipEntry zipEntry) throws IOException {
        ...
        if (ZipResultType.FILE.equals(zipResultType)) {
            final File destinationFile = checkPath(messageId, zipEntryName);

            if (zipEntry.isDirectory()) {
                destinationFile.mkdirs(); //NOSONAR false positive
            }
            else {
                mkDirOfAncestorDirectories(destinationFile);
                SpringZipUtils.copy(zipEntryInputStream, destinationFile);
                uncompressedData.put(zipEntryName, destinationFile);
            }
        }
        else if (ZipResultType.BYTE_ARRAY.equals(zipResultType)) {
            if (!zipEntry.isDirectory()) {
                checkPath(messageId, zipEntryName);
                byte[] data = IOUtils.toByteArray(zipEntryInputStream);
                uncompressedData.put(zipEntryName, data);
            }
        }
        ...
    }
    ...
});

The existing checkPath() guard only constrains where an entry lands, not how large it is. In the default file-based mode every entry is streamed straight into the transformer work directory, which sits under the JVM temporary directory unless configured otherwise, so a crafted archive expands onto the filesystem. When the transformer is configured to return byte arrays instead, IOUtils.toByteArray() buffers each entry entirely in memory, and every extracted result is accumulated in the uncompressedData map for the lifetime of the transformation, so a highly compressible or deeply padded archive of a few kilobytes expands into gigabytes. Any flow that unzips content arriving from an untrusted source can be pushed into filesystem or heap exhaustion by a single message.

This vulnerability was introduced in 2023 with Spring Integration 6.1.0.

Mitigation

Only recent versions of Spring Integration receive community support. Older lines are End-of-Life and will not receive public updates to address this issue.

Users of the affected components should apply one of the following mitigations:

  • Upgrade to a currently supported version of Spring Integration.
  • Leverage a commercial support partner like HeroDevs for post-EOL security support.

Credits

  • Yu Bao from PayPal Cybersecurity Team (finder)
Vulnerability Details
Severity
Level
CVSS Assessment
Low
>=0 <4
Medium
>=4 <6
High
>=6 <8
Critical
>=8 <10
Medium
ID
CVE-2026-59274
PROJECT Affected
Spring Integration
Versions Affected
>= 6.1.0 <= 6.4.12, >= 6.5.0 <= 6.5.10, >= 7.0.0 < 7.0.6, >= 7.1.0 < 7.1.1
NES Versions Affected
Published date
August 29, 2026
≈ Fix date
August 28, 2026
Category
Denial of Service
Vex Document
Download VEXHow do I use it?
Sign up for the latest vulnerability alerts fixed in
NES for Spring
Rss feed icon
Subscribe via RSS
or

By submitting the form I acknowledge receipt of our Privacy Policy.

Thanks for signing up for our Newsletter! We look forward to connecting with you.
Oops! Something went wrong while submitting the form.