Executive brief
Spring Data REST is a framework that allows developers to expose databases over HTTP REST APIs. When handling update requests (HTTP PUT) against immutable aggregate root objects, the framework fails to preserve the version field (@Version), which tracks object revisions for concurrency control. This could lead to lost updates or data inconsistency when multiple clients attempt concurrent modifications to the same entity.
Technical details
The vulnerability exists in Spring Data REST's HTTP PUT handler for immutable entity types. When processing a PUT request against an aggregate root marked with @Version (used for optimistic locking), the framework does not preserve the persisted version property during serialization/deserialization. The root cause is improper handling of immutable target types during entity update operations. An attacker with network access to a REST endpoint can craft concurrent PUT requests to exploit optimistic locking bypass, potentially causing data inconsistency or lost updates. The issue affects multiple versions across the 3.x, 4.x, and 5.x release lines; patches are expected from the Spring team.
Affected products
- VMware Spring Data REST 5.1.0, 5.0.0–5.0.6, 4.5.0–4.5.12, 4.0.0–4.4.15, 3.7.20 and earlier
Timeline
- 2026-08-27: disclosed