CVE-2018-1270 in Spring Framework: Affected Versions and How to Check

CVE-2018-1270 is a vulnerability in Spring Framework's spring-messaging module. The most confusing part when researching it is whether the fix is 4.3.15 or 4.3.16, because NVD's description and the vendor advisory disagree. This article reconciles the primary sources and lays out the affected and fixed versions plus how to tell whether your environment is affected.

Checked on 4 August 2026. Every figure and version number in this article was verified that day against NVD and the official Spring advisory. Vulnerability data changes, so consult the primary sources yourself (URLs at the end of this article) before acting. This article contains no attack steps or proof-of-concept code.

At a glance

CVE IDCVE-2018-1270
Affected componentThe spring-messaging module of Spring Framework
Affected versions (vendor)5.0.0 to 5.0.4 / 4.3.15 and earlier
Fixed versions (vendor)5.0.5 / 4.3.16
CVSS v3.1 (NVD)9.8 CRITICAL (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
CVSS v2 (NVD)7.5 HIGH (AV:N/AC:L/Au:N/C:P/I:P/A:P)
CWE (NVD)CWE-94 (code injection) and CWE-358
In the CISA KEV catalogNo (verified against the 3 August 2026 catalog)
Published / last modified (NVD)6 April 2018 / 17 June 2026 (vulnStatus: Modified)

What the vulnerability is

The official Spring advisory describes it as follows.

Spring Framework, versions 5.0.x prior to 5.0.5 and versions 4.3.x prior to 4.3.16, and older unsupported versions allow applications to expose STOMP over WebSocket endpoints with a simple, in-memory STOMP broker through the spring-messaging module. A malicious user (or attacker) can craft a message to the broker that can lead to a remote code execution attack.

In other words, the exposure arises where an application exposes a STOMP over WebSocket endpoint through the spring-messaging module and uses the simple in-memory broker rather than relaying to an external broker. A crafted message sent to that broker can lead to remote code execution.

So using Spring Framework is not by itself enough to be affected. Whether your configuration matches the conditions above is what decides it. The advisory cites two references: the Spring reference documentation on enabling STOMP over WebSocket, and the Spring Security reference on WebSocket (URLs at the end of this article).

Credit: the advisory states, "This issue was identified and responsibly reported by Alvaro Muñoz (@pwntester), Micro Focus Fortify."

The fixed 4.3.x version is 4.3.16, not 4.3.15

This is the easiest thing to get wrong about this CVE. The NVD description still reads "versions 4.3 prior to 4.3.15", which is the original wording from publication. The History section of the official Spring advisory records:

The originally advised 4.3.15 was withdrawn because of a separate vulnerability (CVE-2018-1275) and replaced by 4.3.16. NVD's own CPE data agrees with the vendor even though its prose does not: the applicability range is "anything below 4.3.16 is vulnerable".

If you are on the 4.3 line, upgrading to 4.3.15 does not count as remediation. Go to 4.3.16 or later.

SourceWhat it says about 4.3.xHow to treat it
Official Spring advisory (description and fix table)4.3.15 and earlier affected; fixed in 4.3.16Follow this
NVD description textversions 4.3 prior to 4.3.15Original wording; stale
NVD CPE applicabilityversionEndExcluding = 4.3.16Agrees with the vendor

How to check whether you are affected

Everything below is a check you run against an environment you own.

1. Find the Spring Framework version actually in use

Check the version your application really resolves to, using your build tool's dependency tree. Parent POMs and BOMs can make the declared version differ from the resolved one, so look at what is resolved, not what is declared.

# Maven: check the resolved spring-messaging and spring-core versions
mvn dependency:tree -Dincludes=org.springframework

# Gradle: check what the runtime classpath resolves to
./gradlew dependencies --configuration runtimeClasspath

If you only have a built artifact, the bundled JAR filename (spring-messaging-x.y.z.jar) or the Implementation-Version entry in the JAR's META-INF/MANIFEST.MF also gives you the version.

2. Check whether you use the affected feature

Even a version inside the affected range is not exposed unless the configuration described by the advisory is in use. Confirm three things from your configuration and code.

3. Check whether message authentication and authorization are in place

The advisory notes:

Note that the use of authentication and authorization for messages, both of which are provided by Spring Security, limits exposure to this vulnerability to authorized users.

Where message authentication and authorization (both provided by Spring Security) are used, exposure is limited to authorized users. That narrows the blast radius, but the advisory does not present it as a workaround. The remediation is the upgrade described next.

What the vendor says to do

The advisory's mitigation section is brief:

That is, move the 5.0.x line to 5.0.5 and the 4.3.x line to 4.3.16, with no other mitigation required. Note that both fixed versions belong to lines that went out of support many years ago. If you are still on 4.3.x or 5.0.x, this is a moment to consider migrating to a supported line rather than just patching this one CVE.

Is it known to be exploited?

Searching CISA's Known Exploited Vulnerabilities catalog directly on 4 August 2026 (catalog version 2026.08.03, 1,657 entries), CVE-2018-1270 was not listed. The NVD record likewise carries no KEV-related fields.

An easy confusion: a different 2018 Spring CVE, CVE-2018-1273 (Spring Data Commons), is in the KEV catalog (added 25 March 2022). The numbers are close enough to mix up, and generalising to "the 2018 Spring CVEs are in KEV" would be wrong. Other Spring-related KEV entries include CVE-2022-22965 (Spring Framework), CVE-2022-22947, CVE-2022-22963 and CVE-2020-5410.

NVD's reference list does include an Exploit Database entry, tagged "Broken Link / Third Party Advisory / VDB Entry". That tells you public proof-of-concept code existed historically, which is a different matter from KEV listing. The vendor advisory itself makes no claim about exploitation.

Watch out for downstream products

Besides Spring Framework itself, NVD lists redistributing products as vulnerable. At the time of checking these included Red Hat Fuse, Debian GNU/Linux 9 and a large number of Oracle products (Communications, Retail, Primavera, GoldenGate, Application Testing Suite and others). Even if you do not use Spring directly, you may be affected through a bundled copy inside a vendor product. For those, check that vendor's own advisory.

Sources and date checked

Anything that could not be verified has been left out. No attack steps or proof-of-concept code are covered.

Frequently Asked Questions

Which version fixes CVE-2018-1270?

The official Spring advisory gives 5.0.5 for the 5.0.x line and 4.3.16 for the 4.3.x line (checked 4 August 2026). The originally advised 4.3.15 was replaced by 4.3.16 on 10 April 2018 because of CVE-2018-1275, so upgrading only to 4.3.15 does not count as remediation.

NVD says 4.3.15. Which is correct?

The NVD description text is the original wording from publication and is stale. NVD's own CPE applicability range is versionEndExcluding = 4.3.16, which agrees with the vendor advisory. Treat 4.3.16 as the fixed version (checked 4 August 2026).

Am I affected simply because I use Spring Framework?

No. The advisory concerns applications that expose a STOMP over WebSocket endpoint through the spring-messaging module while using the simple in-memory STOMP broker. If you do not use that configuration, this path does not exist in your application.

Is CVE-2018-1270 in the CISA Known Exploited Vulnerabilities catalog?

Searching the catalog directly on 4 August 2026 (version 2026.08.03, 1,657 entries), CVE-2018-1270 was not listed. Note that the similarly numbered CVE-2018-1273 in Spring Data Commons was added to KEV on 25 March 2022, so take care not to confuse the two.

← Back to Tech Blog