CVE-2020-5413: Kryo Configuration Allows Code Execution with Unknown “Serialization Gadgets”

LOW | JULY 23, 2020 | CVE-2020-5413

Description

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.

Affected Spring Products and Versions

  • Spring Integration
    • 4.3.0 to 4.3.22
    • 5.1.0 to 5.1.11
    • 5.2.0 to 5.2.7
    • 5.3.0 to 5.3.1

Mitigation

Users of an affected version should upgrade to these releases with the fixed issue:

  • Spring Integration
    • 4.3.23
    • 5.1.12
    • 5.2.8
    • 5.3.2

Credit

ChengGao, ZeZhiLin, Alibaba Cloud Intelligence Security Team https://www.aliyun.com/

References

History

  • 2020-07-19: Initial vulnerability report published.

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all