Skip to content

Path Traversal in AssetsController

Low
angrybrad published GHSA-472v-j2g4-g9h2 Mar 16, 2026

Package

composer craftcms/cms (Composer)

Affected versions

>= 4.0.0-RC1, <= 4.17.4
>= 5.0.0-RC1, <= 5.9.10

Patched versions

4.17.5
5.9.11

Description

The AssetsController->replaceFile() method has a targetFilename body parameter that is used unsanitized in a deleteFile() call before Assets::prepareAssetName() is applied on save. This allows an authenticated user with replaceFiles permission to delete arbitrary files within the same filesystem root by injecting ../ path traversal sequences into the filename.

This could allow an authenticated user with replaceFiles permission on one volume to delete files in other folders/volumes that share the same filesystem root.

This only affects local filesystems.

Users should update to Craft 4.17.5 or 5.9.11 to mitigate the issue.

References

c997efb

Severity

Low

CVE ID

CVE-2026-32262

Weaknesses

No CWEs