Every CVE Search/ Get API key

CVE-2020-5413

Kryo Configuration Allows Code Execution with Unknown "Serialization Gadgets"

9.8 CriticalFix available

Spring Integration framework provides Kryo Codec implementations as an alternative for Java (de)serialization. When Kryo is configured with default options, all unregistered classes are resolved on demand. This leads to the "deserialization gadgets" exploit when provided data contains malicious code for execution during deserialization. In order to protect against this type of attack, Kryo can be configured to require a set of trusted classes for (de)serialization. Spring Integration should be proactive against blocking unknown "deserialization gadgets" when configuring Kryo in code.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

4.41%Up 3.7 points since Apr 14, 2021
90%50%10%1%

What each source reports

NVD Score used 9.8

Spring Integration framework provides Kryo Codec implementations as an alternative for Java (de)serialization. When Kryo is configured with default options, all unregistered classes are resolved on demand. This leads to the "deserialization gadgets" exploit when provided data contains malicious code for execution during deserialization. In order to protect against this type of attack, Kryo can be configured to require a set of trusted classes for (de)serialization. Spring Integration should be proactive against blocking unknown "deserialization gadgets" when configuring Kryo in code.

Record
CVE-2020-5413
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2.0
7.5 HighAV:N/AC:L/Au:N/C:P/I:P/A:P
Weakness
CWE-502
Updated
2026-11-02
CVE List No score

Kryo Configuration Allows Code Execution with Unknown "Serialization Gadgets"

Spring Integration framework provides Kryo Codec implementations as an alternative for Java (de)serialization. When Kryo is configured with default options, all unregistered classes are resolved on demand. This leads to the "deserialization gadgets" exploit when provided data contains malicious code for execution during deserialization. In order to protect against this type of attack, Kryo can be configured to require a set of trusted classes for (de)serialization. Spring Integration should be proactive against blocking unknown "deserialization gadgets" when configuring Kryo in code.

Record
CVE-2020-5413
Weakness
CWE-502
Updated
2026-11-02
EUVDEUVD-2020-0604 No score

Spring Integration framework provides Kryo Codec implementations as an alternative for Java (de)serialization. When Kryo is configured with default options, all unregistered classes are resolved on demand. This leads to the "deserialization gadgets" exploit when provided data contains malicious code for execution during deserialization. In order to protect against this type of attack, Kryo can be configured to require a set of trusted classes for (de)serialization. Spring Integration should be proactive against blocking unknown "deserialization gadgets" when configuring Kryo in code.

Record
EUVD-2020-0604
Updated
2026-11-03
GitHub AdvisoriesGHSA-86qr-9vqc-pgc6 9.8

Code execution in Spring Integration

Spring Integration framework provides Kryo Codec implementations as an alternative for Java (de)serialization. When Kryo is configured with default options, all unregistered classes are resolved on demand. This leads to the "deserialization gadgets" exploit when provided data contains malicious code for execution during deserialization. In order to protect against this type of attack, Kryo can be configured to require a set of trusted classes for (de)serialization. Spring Integration should be proactive against blocking unknown "deserialization gadgets" when configuring Kryo in code.

Record
GHSA-86qr-9vqc-pgc6
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-502
Updated
2026-11-02
OSV 9.8

Spring Integration framework provides Kryo Codec implementations as an alternative for Java (de)serialization. When Kryo is configured with default options, all unregistered classes are resolved on demand. This leads to the "deserialization gadgets" exploit when provided data contains malicious code for execution during deserialization. In order to protect against this type of attack, Kryo can be configured to require a set of trusted classes for (de)serialization. Spring Integration should be proactive against blocking unknown "deserialization gadgets" when configuring Kryo in code.

Record
CVE-2020-5413
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVGHSA-86qr-9vqc-pgc6 9.8

Code execution in Spring Integration

Spring Integration framework provides Kryo Codec implementations as an alternative for Java (de)serialization. When Kryo is configured with default options, all unregistered classes are resolved on demand. This leads to the "deserialization gadgets" exploit when provided data contains malicious code for execution during deserialization. In order to protect against this type of attack, Kryo can be configured to require a set of trusted classes for (de)serialization. Spring Integration should be proactive against blocking unknown "deserialization gadgets" when configuring Kryo in code.

Record
GHSA-86qr-9vqc-pgc6
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-502
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
org.springframework.integration:spring-integration-core
Maven
4.3.0 up to 4.3.23
4.3.23
org.springframework.integration:spring-integration-core
Maven
5.3.0 up to 5.3.2
5.3.2
org.springframework.integration:spring-integration-core
Maven
5.1.0 up to 5.1.12
5.1.12
org.springframework.integration:spring-integration-core
Maven
5.2.0 up to 5.2.8
5.2.8
org.springframework.integration:spring-integration-core
Maven
4.3.0 up to 4.3.23, plus listed versions
4.3.0.RELEASE4.3.1.RELEASE4.3.10.RELEASE4.3.11.RELEASE4.3.12.RELEASE
Show 17 moreShow less
4.3.13.RELEASE4.3.14.RELEASE4.3.15.RELEASE4.3.16.RELEASE4.3.17.RELEASE4.3.18.RELEASE4.3.19.RELEASE4.3.2.RELEASE4.3.20.RELEASE4.3.21.RELEASE4.3.22.RELEASE4.3.4.RELEASE4.3.5.RELEASE4.3.6.RELEASE4.3.7.RELEASE4.3.8.RELEASE4.3.9.RELEASE
4.3.23
org.springframework.integration:spring-integration-core
Maven
5.3.0 up to 5.3.2, plus listed versions
5.3.0.RELEASE5.3.1.RELEASE
5.3.2
org.springframework.integration:spring-integration-core
Maven
5.1.0 up to 5.1.12, plus listed versions
5.1.0.RELEASE5.1.1.RELEASE5.1.10.RELEASE5.1.11.RELEASE5.1.2.RELEASE
Show 7 moreShow less
5.1.3.RELEASE5.1.4.RELEASE5.1.5.RELEASE5.1.6.RELEASE5.1.7.RELEASE5.1.8.RELEASE5.1.9.RELEASE
5.1.12
org.springframework.integration:spring-integration-core
Maven
5.2.0 up to 5.2.8, plus listed versions
5.2.0.RELEASE5.2.1.RELEASE5.2.2.RELEASE5.2.3.RELEASE5.2.4.RELEASE5.2.5.RELEASE5.2.6.RELEASE5.2.7.RELEASE
5.2.8

History

History
RecordedChangedSources
aliases, publishedEUVD
first indexedCVE List, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2020-5413 is a critical vulnerability (CVSS 9.8) in Spring By Vmware Integration, published July 31, 2020. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 4.41%, the 91st percentile. Fixed in org.springframework.integration:spring-integration-core 4.3.23.

References

MoveEnter Open