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.
At a glance
| CVE ID | CVE-2018-1270 |
|---|---|
| Affected component | The 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 catalog | No (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).
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:
- 2018-04-05: Initial vulnerability report published.
- 2018-04-10: Replaced upgrade version 4.3.15 with 4.3.16 due to CVE-2018-1275
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.
| Source | What it says about 4.3.x | How to treat it |
|---|---|---|
| Official Spring advisory (description and fix table) | 4.3.15 and earlier affected; fixed in 4.3.16 | Follow this |
| NVD description text | versions 4.3 prior to 4.3.15 | Original wording; stale |
| NVD CPE applicability | versionEndExcluding = 4.3.16 | Agrees 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.
- Whether
spring-messagingis on the classpath (check the dependency tree). - Whether you expose a STOMP over WebSocket endpoint at all. If not, this path does not exist in your application.
- Whether that endpoint uses the simple in-memory broker or relays to an external message broker. The advisory concerns the former.
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:
- Users of affected versions should upgrade to the corresponding fixed version.
- There are no other mitigation steps necessary.
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.
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
- Checked on 4 August 2026
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2018-1270 (CVSS, CWE, CPE applicability, published and last-modified dates)
- Official Spring advisory: https://spring.io/security/cve-2018-1270/ (description, affected and fixed versions, mitigation, history, credit)
- CISA Known Exploited Vulnerabilities catalog: https://www.cisa.gov/known-exploited-vulnerabilities-catalog (checked for listing; catalog version 2026.08.03)
- Spring documentation cited as references by the advisory:
https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#websocket-stomp-enableandhttps://docs.spring.io/spring-security/site/docs/5.0.3.RELEASE/reference/htmlsingle/#websocket
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.