CVE-2026-59294
Arbitrary File Write via Path Traversal in ResourceCacheService
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
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- High
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
5.9
Arbitrary File Write via Path Traversal in ResourceCacheService
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
- Record
CVE-2026-59294- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:L - Weakness
- CWE-22
- Updated
- 2026-11-02
EUVDEUVD-2026-67182
5.9
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
- Record
EUVD-2026-67182- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:L - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-2mrf-pjhv-x8h2
5.9
ResourceCacheService.getCacheName() builds the on-disk filename by appending the URI fragment...
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
- Record
GHSA-2mrf-pjhv-x8h2- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:L - Weakness
- CWE-22
- Updated
- 2026-11-02
NVD
5.9
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
- Record
CVE-2026-59294- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:L - CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-22
- Updated
- 2026-11-02
OSV
5.9
Arbitrary File Write via Path Traversal in ResourceCacheService
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
- Record
CVE-2026-59294- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:L - Updated
- 2026-11-02
OSVCLSA-2026-1793463667 No score
TuxCare security update for org.springframework.ai (4 CVEs)
TuxCare rebuilt 3 org.springframework.ai packages to address 4 CVEs. Fixed in 1.0.9-tuxcare.1.
- Record
CLSA-2026-1793463667- Updated
- 2026-11-02
OSVCLSA-2026-1793654179 No score
TuxCare security update for org.springframework.ai (4 CVEs)
TuxCare rebuilt 3 org.springframework.ai packages to address 4 CVEs. Fixed in 1.1.8-tuxcare.1.
- Record
CLSA-2026-1793654179- Updated
- 2026-11-03
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
org.springframework.ai:spring-ai-modelTuxCare:Maven From an advisory covering 4 CVEs |
1.0.9 up to 1.0.9-tuxcare.1 | 1.0.9-tuxcare.1 |
org.springframework.ai:spring-ai-pdf-document-readerTuxCare:Maven From an advisory covering 4 CVEs |
1.0.9 up to 1.0.9-tuxcare.1 | 1.0.9-tuxcare.1 |
org.springframework.ai:spring-ai-transformersTuxCare:Maven From an advisory covering 4 CVEs |
1.0.9 up to 1.0.9-tuxcare.1 | 1.0.9-tuxcare.1 |
org.springframework.ai:spring-ai-modelTuxCare:Maven From an advisory covering 4 CVEs |
1.1.8 up to 1.1.8-tuxcare.1 | 1.1.8-tuxcare.1 |
org.springframework.ai:spring-ai-pdf-document-readerTuxCare:Maven From an advisory covering 4 CVEs |
1.1.8 up to 1.1.8-tuxcare.1 | 1.1.8-tuxcare.1 |
org.springframework.ai:spring-ai-transformersTuxCare:Maven From an advisory covering 4 CVEs |
1.1.8 up to 1.1.8-tuxcare.1 | 1.1.8-tuxcare.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| affected, aliases | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-59294 is a medium vulnerability (CVSS 5.9) in Spring Ai, published August 27, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.36%, the 30th percentile. No source names a fixed version.