Spring Data REST allows mutation of identifier and version properties via JSON Patch

HIGH | AUGUST 20, 2026 | CVE-2026-47849

Description

Spring Data REST does not guard identifier (@Id) and version (@Version) properties against mutation via RFC 6902 JSON Patch (application/json-patch+json) requests.

The PUT and merge-patch (application/merge-patch+json) code paths explicitly skip these properties during binding. The JSON Patch code path does not apply an equivalent guard, allowing an authenticated client with PATCH access to overwrite them directly.

Overwriting the version property defeats optimistic-locking (lost-update) protection. Overwriting the identifier property can cause the subsequent repository save to silently overwrite a record belonging to a different principal (horizontal privilege escalation).

Affected applications are those that expose a Spring Data REST repository whose entity type declares an identifier or version property that is visible to Jackson's deserialization model (i.e. the property has a public setter and is not explicitly excluded via @JsonIgnore).

Affected Spring Products and Versions

Spring Data REST:

  • 5.1.0 - 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

Mitigation

Users of affected versions should upgrade to the corresponding fixed version.
Fix versionAvailability
5.1.1OSS
5.1.0.1Enterprise Support Only
5.0.7OSS
5.0.6.1Enterprise Support Only
4.5.13Enterprise Support Only
4.4.16Enterprise Support Only
3.7.21Enterprise Support Only

No further mitigation steps are necessary.

History

  • 2026-08-20: 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