CVE-2026-56394: `assets/icon`, allowing local `.svg` file read · Craft CMS Has Authenticated Path Traversal
Affects craftcms/cmsSource GCVE Database
Mentioned vulnerabilities
CVSS 2.0 Low : upgrade to 4.17.7 when convenient.
Data as of 7 Aug 2026, 05:56 UTC
- Patch
- Available – fixed in 4.17.7, 5.9.13
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:NWhat to do
Upgrade craftcms/cms to 4.17.7; craftcms/cms to 5.9.13.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| Packagistcraftcms/cms | Affected
| Fixed in
|
| Packagistcraftcms/cms | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
If you cannot patch yet, restrict access to the affected endpoint to trusted users only and monitor for suspicious activity related to file access. Avoid exposing sensitive SVG files on the server.
Description
### Summary An authenticated path traversal in `assets/icon` allows local SVG file read by passing traversal sequences in the `extension` parameter. The issue is caused by file existence checks happening before extension validation. ### Details The endpoint: - `src/controllers/AssetsController.php:1115-1123` - `actionIcon(string $extension)` calls `Assets::iconPath($extension)` and returns `sendFile($path, ...)`. In `Assets::iconPath()`: - Path is built from user-controlled `extension`: - `src/helpers/Assets.php:906-909` - If `file_exists($path)` is true, path is returned immediately: - `src/helpers/Assets.php:910-912` Validation exists in `Assets::iconSvg()`: - `preg_match('/^\w+$/', $extension)` - `src/helpers/Assets.php:927-931` However, that validation is only reached if `iconPath()` does **not** find a file. So traversal payloads that resolve to existing `.svg` files bypass validation and are served by `sendFile()`. ### Impact - Authenticated users can read local .svg files accessible to the application process. ### References - https://github.com/craftcms/cms/commit/30f5f1a8d6edf0f3a00be72c42c78d9dc7d72d5c
References
- github.com/craftcms/cms/security/advisories/GHSA-c43v-4cr8-6mvp (opens in a new tab)
- github.com/craftcms/cms/commit/30f5f1a8d6edf0f3a00be72c42c78d9dc7d72d5c (opens in a new tab)
- github.com/craftcms/cms (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-56394 (opens in a new tab)
- vulncheck.com/advisories/craft-cms-authenticated-path-traversal-in-assets-icon-extension-parameter (opens in a new tab)