Arbitrary File Write via Path Traversal in ResourceCacheService

MEDIUM | AUGUST 20, 2026 | CVE-2026-59294

Description

ResourceCacheService.getCacheName() builds the on-disk filename by appending the URI fragment verbatim, without stripping path separators or .. sequences, and passes the result to new File(resourceParentFolder, newFileName) before writing the downloaded bytes there. An application that passes model or tokenizer URIs from a less-trusted source (tenant configuration, admin UI, external catalogue) to TransformersEmbeddingModel.setModelResource() or setTokenizerResource() can be exploited by supplying a URI with a crafted fragment (e.g. #/../../../../opt/app/conf/override.properties) to write attacker-controlled content to an arbitrary path outside the cache directory.

Affected Spring Products and Versions

Spring AI:

  • 2.0.0 - 2.0.0
  • 1.1.0 - 1.1.8
  • 1.0.9 and earlier

Mitigation

Users of affected versions should upgrade to the corresponding fixed version.
Fix versionAvailability
2.0.1OSS
2.0.0.1Enterprise Support Only
1.1.9Enterprise Support Only
1.0.10Enterprise 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