CVE Vulnerabilities

CVE-2017-8045

Deserialization of Untrusted Data

Published: Nov 27, 2017 | Modified: Apr 20, 2025
CVSS 3.x
9.8
CRITICAL
Source:
NVD
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2.x
7.5 HIGH
AV:N/AC:L/Au:N/C:P/I:P/A:P
RedHat/V2
RedHat/V3
Ubuntu

In Pivotal Spring AMQP versions prior to 1.7.4, 1.6.11, and 1.5.7, an org.springframework.amqp.core.Message may be unsafely deserialized when being converted into a string. A malicious payload could be crafted to exploit this and enable a remote code execution attack.

Weakness

The product deserializes untrusted data without sufficiently ensuring that the resulting data will be valid.

Affected Software

Name Vendor Start Version End Version
Spring_advanced_message_queuing_protocol Pivotal_software 1.5.0 (including) 1.5.0 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.5.0-m1 (including) 1.5.0-m1 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.5.0-rc1 (including) 1.5.0-rc1 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.5.1 (including) 1.5.1 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.5.2 (including) 1.5.2 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.5.3 (including) 1.5.3 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.5.4 (including) 1.5.4 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.5.5 (including) 1.5.5 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.5.6 (including) 1.5.6 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.6.0 (including) 1.6.0 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.6.0-m1 (including) 1.6.0-m1 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.6.0-m2 (including) 1.6.0-m2 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.6.0-rc1 (including) 1.6.0-rc1 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.6.1 (including) 1.6.1 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.6.2 (including) 1.6.2 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.6.3 (including) 1.6.3 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.6.4 (including) 1.6.4 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.6.5 (including) 1.6.5 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.6.6 (including) 1.6.6 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.6.7 (including) 1.6.7 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.6.8 (including) 1.6.8 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.6.9 (including) 1.6.9 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.6.10 (including) 1.6.10 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.7.0 (including) 1.7.0 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.7.1 (including) 1.7.1 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.7.2 (including) 1.7.2 (including)
Spring_advanced_message_queuing_protocol Pivotal_software 1.7.3 (including) 1.7.3 (including)

Potential Mitigations

  • Make fields transient to protect them from deserialization.
  • An attempt to serialize and then deserialize a class containing transient fields will result in NULLs where the transient data should be. This is an excellent way to prevent time, environment-based, or sensitive variables from being carried over and used improperly.

References