{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2026-59294",
        "assignerOrgId": "dcf2e128-44bd-42ed-91e8-88f912c1401d",
        "state": "PUBLISHED",
        "assignerShortName": "vmware",
        "dateReserved": "2026-07-04T18:13:34.323Z",
        "datePublished": "2026-08-27T17:57:52.047Z",
        "dateUpdated": "2026-08-27T17:57:52.047Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "dcf2e128-44bd-42ed-91e8-88f912c1401d",
                "shortName": "vmware",
                "dateUpdated": "2026-08-27T17:57:52.047Z"
            },
            "title": "Arbitrary File Write via Path Traversal in ResourceCacheService",
            "problemTypes": [
                {
                    "descriptions": [
                        {
                            "lang": "en",
                            "description": "CWE-22 Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')",
                            "type": "CWE"
                        }
                    ]
                }
            ],
            "impacts": [
                {
                    "descriptions": [
                        {
                            "lang": "en",
                            "value": "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."
                        }
                    ]
                }
            ],
            "affected": [
                {
                    "vendor": "Spring",
                    "product": "Spring AI",
                    "versions": [
                        {
                            "status": "affected",
                            "version": "2.0.0",
                            "versionType": "custom"
                        },
                        {
                            "status": "affected",
                            "version": "1.1.0",
                            "lessThanOrEqual": "1.1.8",
                            "versionType": "custom"
                        },
                        {
                            "status": "affected",
                            "version": "0",
                            "lessThanOrEqual": "1.0.9",
                            "versionType": "custom"
                        }
                    ],
                    "defaultStatus": "unaffected"
                }
            ],
            "descriptions": [
                {
                    "lang": "en",
                    "value": "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.\nSpring AI 2.0.0\nSpring AI 1.1.0 - 1.1.8\nSpring AI 1.0.9 and earlier",
                    "supportingMedia": [
                        {
                            "type": "text/html",
                            "base64": false,
                            "value": "<p>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.</p><p>Spring AI 2.0.0<br/>Spring AI 1.1.0 - 1.1.8<br/>Spring AI 1.0.9 and earlier</p>"
                        }
                    ]
                }
            ],
            "references": [
                {
                    "url": "https://spring.io/security/cve-2026-59294"
                }
            ],
            "metrics": [
                {
                    "format": "CVSS",
                    "scenarios": [
                        {
                            "lang": "en",
                            "value": "GENERAL"
                        }
                    ],
                    "cvssV3_1": {
                        "version": "3.1",
                        "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:L",
                        "baseScore": 5.9,
                        "baseSeverity": "MEDIUM",
                        "attackVector": "NETWORK",
                        "attackComplexity": "HIGH",
                        "privilegesRequired": "LOW",
                        "userInteraction": "NONE",
                        "scope": "UNCHANGED",
                        "confidentialityImpact": "NONE",
                        "integrityImpact": "HIGH",
                        "availabilityImpact": "LOW"
                    }
                }
            ],
            "source": {
                "discovery": "UNKNOWN"
            }
        }
    }
}