Get ahead
VMware offers training and certification to turbo-charge your progress.
Learn moreSpring Framework applications that use Spring's data binding infrastructure to apply user-supplied property paths onto a target object may be vulnerable to a Denial of Service (DoS) attack.
Spring Framework's property binding infrastructure traverses nested property paths by
calling list.get(index) to navigate into list elements. This call is made without
verifying that the index falls within the list's current bounds after the configured
autoGrowCollectionLimit check prevents further growth. For standard List
implementations this is safe, as an out-of-range get() throws
IndexOutOfBoundsException. However, a List implementation whose get() method
allocates elements on demand rather than throwing IndexOutOfBoundsException may be
caused to perform unbounded allocation.
Specifically, an application is vulnerable when all of the following conditions are met:
DataBinder,
BeanWrapper, or DirectFieldAccessor) to apply user-supplied property paths onto a
target object.List implementation as a property.When all conditions are met, an attacker can supply a property path with an arbitrarily large index into a nested sub-property, causing the list to allocate an unbounded number of elements, exhausting heap memory and potentially resulting in Denial of Service.
Spring Framework:
| Fix version | Availability |
|---|---|
| 7.0.9 | OSS |
| 7.0.8.1 | Enterprise Support Only |
| 6.2.20 | Enterprise Support Only |
| 6.1.29 | Enterprise Support Only |
| 6.0.31 | Enterprise Support Only |
| 5.3.50 | Enterprise Support Only |
| 5.2.26 | Enterprise Support Only |
No further mitigation steps are necessary.
To report a security vulnerability for a project within the Spring portfolio, see the Security Policy