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.
Spring AI 2.0.0
Spring AI 1.1.0 - 1.1.8
Spring AI 1.0.9 and earlier
Published: 2026-08-27
Score: 5.9 Medium
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

ResourceCacheService builds a file name from an incoming URI fragment without sanitizing path separators or '..' sequences, then writes data to the constructed path. This flaw allows an attacker to override any file under the resource parent folder, potentially replacing or corrupting critical files and compromising system integrity. The vulnerability is a path traversal weakness that can be exploited to achieve arbitrary file write.

Affected Systems

Spring AI software is affected. Versions 2.0.0, 1.1.0 through 1.1.8, and 1.0.9 and earlier are vulnerable.

Risk and Exploitability

The CVSS score of 5.9 classifies the issue as moderate severity, while the EPSS score is currently unavailable and the vulnerability is not listed in the CISA KEV catalog. The likely attack vector is an HTTP request to the ResourceCacheService with a crafted URI fragment that resolves to an unauthorized file path. Successful exploitation requires access to the service endpoint and the ability to upload data, but it does not require remote code execution or elevated privileges beyond write permissions in the resource folder.

Generated by OpenCVE AI on August 28, 2026 at 06:54 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Spring AI to the most recent version that contains the fixed implementation of ResourceCacheService.
  • If an immediate patch is not available, validate and sanitize all URI fragments before use: strip or encode path separators and eliminate '..' sequences to prevent traversal.
  • Restrict the write permissions of the resource parent directory to only the required files, and consider moving the cache storage to a dedicated, tightly‑controlled location to limit the impact of a traversal attempt.

Generated by OpenCVE AI on August 28, 2026 at 06:54 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

References
History

Fri, 28 Aug 2026 07:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-22

Fri, 28 Aug 2026 06:45:00 +0000

Type Values Removed Values Added
First Time appeared Spring
Spring spring Ai
Vendors & Products Spring
Spring spring Ai

Thu, 27 Aug 2026 18:00:00 +0000

Type Values Removed Values Added
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. Spring AI 2.0.0 Spring AI 1.1.0 - 1.1.8 Spring AI 1.0.9 and earlier
Title Arbitrary File Write via Path Traversal in ResourceCacheService
References
Metrics cvssV3_1

{'score': 5.9, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:L'}


Subscriptions

Spring Spring Ai
cve-icon MITRE

Status: PUBLISHED

Assigner: vmware

Published:

Updated: 2026-08-27T17:57:52.047Z

Reserved: 2026-07-04T18:13:34.323Z

Link: CVE-2026-59294

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-27T20:17:55.583

Modified: 2026-08-27T20:17:55.583

Link: CVE-2026-59294

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-28T07:00:12Z

Weaknesses
  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')