CVE-2026-118515
Last modified
CVE-2026-118515 is a high-severity vulnerability rated 8.4/10 on the CVSS scale. The Symfony Serializer component DataUriNormalizer handles only the exact types SplFileInfo, SplFileObject, and File, so for a property typed with a subclass such as UploadedFile, ObjectNormalizer instantiates the object through its constructor from attacker-controlled data, including the file path. This allows an arbitrary file on the server to be treated as an uploaded file in Symfony versions prior to 5.4.56, 6.x prior to 6.4.50, 7.x prior to 7.4.23, and 8.x prior to 8.1.11. A request body such as {"image": {"path": "/path/to/project/.env.local", "originalName": "a.png", "test": true}} makes the application handle any file on the server as an upload, without the file being sent. EPSS estimates a 0.58% chance of exploitation in the next 30 days.
Description
The Symfony Serializer component DataUriNormalizer handles only the exact types SplFileInfo, SplFileObject, and File, so for a property typed with a subclass such as UploadedFile, ObjectNormalizer instantiates the object through its constructor from attacker-controlled data, including the file path. This allows an arbitrary file on the server to be treated as an uploaded file in Symfony versions prior to 5.4.56, 6.x prior to 6.4.50, 7.x prior to 7.4.23, and 8.x prior to 8.1.11. A request body such as {"image": {"path": "/path/to/project/.env.local", "originalName": "a.png", "test": true}} makes the application handle any file on the server as an upload, without the file being sent. With test: true, UploadedFile::isValid() skips is_uploaded_file() and move() falls back to rename(). Assert\File does not prevent this because it validates the file at the attacker-chosen path, which exists on the server. Any code that deserializes untrusted data into a type that holds such a property is affected. That includes #[MapRequestPayload] on a DTO with an UploadedFile property, which is how uploads are mapped in Symfony 8.1; a single unauthenticated request with a JSON or form body is enough. Depending on what the application does with the upload, this can expose any file readable by PHP (for instance, when uploads are stored and served back), move any such file when move() is called, and reveal whether a path exists. A serializer built without DataUriNormalizer ahead of the object normalizer is not protected by the fix; the serializer configured by FrameworkBundle is.
Metrics
Weakness Enumeration
Affected Software
Source: CNA advisory (CVE.org). NVD analysis pending.
| Vendor | Product | Versions |
|---|---|---|
| sensiolabs | symfony | < 5.4.56; >= 6.0.0, < 6.4.50; >= 7.0.0, < 7.4.23; >= 8.0.0, < 8.1.11 |
References
Timeline
- Published
- Last Modified
- Status
- Awaiting Analysis
Frequently Asked Questions
What is CVE-2026-118515?
How severe is CVE-2026-118515?
How do I fix CVE-2026-118515?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-118504The web interface blocks issue and pull request changes on a…6.5
- CVE-2026-118505Improper Restriction of Excessive Authentication Attempts vu…6.3
- CVE-2026-11851Improper Neutralization of Special Elements used in an SQL C…5.9
- CVE-2026-118510A type-handling flaw in the relationship query building of t…8.8
- CVE-2026-118513Authentication bypass by spoofing in X509Authenticator and X…7.7
- CVE-2026-118514In Symfony http-foundation prior to versions 5.4.56, 6.4.50,…6.3
- CVE-2026-118516The Symfony Routing components CompiledUrlMatcher and UrlMat…6.3
- CVE-2026-118517The Symfony HtmlSanitizer component UrlSanitizer parses URLs…4.3
- CVE-2026-11852Debusine is an integrated solution to build, distribute and …6.5
- CVE-2026-118523The EventPrime WordPress plugin before 4.3.6.1 does not kee…5.3
- CVE-2026-118527Use of predictable filenames in Ivanti Connect Secure before…4.3
- CVE-2026-118528The Directorist: AI-Powered Business Directory, Listings & C…4.3
Are you affected by CVE-2026-118515?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
