CVE-2026-54087
moderateStored XSS via Browser-Executable File Uploads in EasyAdmin 5.0.0–5.0.12
EasyAdmin, a widely used admin generator for Symfony, versions 5.0.0 through 5.0.12 allows FileField and ImageField to accept browser-executable uploads (HTML files and SVG images, respectively). Because the file.html.twig template links to stored files for inline same-origin rendering without a download attribute or a Content-Disposition: attachment header, JavaScript in an uploaded HTML or SVG file executes in the authenticated administrator's origin when the file is opened from the backend, provided uploads are stored under the public web root. Exploitation requires a privilege gap between the uploader and the viewer — for example, a low-privileged user uploading via a form that an administrator later previews — and can leak session or CSRF tokens and enable privilege escalation, though it does not allow PHP code execution since Symfony's guessExtension never stores .php/.phtml extensions. Sites running EasyAdmin 5.0.0–5.0.12 with uploads stored under the public web root are affected; the issue is fixed in 5.0.13. No public proof of concept or known in-the-wild exploitation has been reported, and the CVE is not on the CISA KEV list.
What to do: Upgrade EasyAdmin to 5.0.13 or later immediately. As defense in depth, configure uploads to be stored outside the public web root (or serve stored files with Content-Disposition: attachment / a forced download attribute), and restrict FileField/ImageField to safe MIME types. Also audit existing upload directories for HTML/SVG files that may have been planted to steal admin session or CSRF tokens, and review whether low-privileged users can reach any form backed by FileField or ImageField.
| Easycorp EasyAdmin (easyadmin-bundle for Symfony) | >= 5.0.0, < 5.0.13 (fixed in 5.0.13) |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
EasyAdmin is a fast and modern admin generator for Symfony applications. From 5.0.0 until 5.0.13, FileField and ImageField can accept browser-executable uploads while templates/crud/field/file.html.twig links to stored files for inline same-origin rendering without a download attribute or Content-Disposition attachment header. When uploads are stored under the public web root, an attacker with access to an affected form can upload HTML through FileField or SVG through ImageField, and JavaScript executes in an authenticated administrator's origin when the file is opened from the backend. Exploitation requires a privilege gap between the uploader and viewer. The issue can expose session or CSRF tokens and enable privilege escalation, but does not permit PHP or PHTML code execution because Symfony guessExtension does not produce those stored extensions. This issue is fixed in version 5.0.13.
- Weakness
- CWE-79, CWE-434
- Vector
- CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:L/A:N
In the news0 stories
No ingested article mentions this CVE yet.