statamic/cms security advisory
CVE-2026-33171: Statamic has a path traversal in file dictionary fieldtype
CVE-2026-33171 is a medium-severity path traversal vulnerability in the PHP package statamic/cms (CVSS 4.3), published 20 March 2026. It is fixed in 5.73.14 and 6.7.0, one per release line; earlier versions on each line are affected. Exploiting it needs a low-privilege user account.
medium 4.3 published 2026-03-20 · updated 2026-06-17
- Affected versions
- < 5.73.14
>= 6.0.0-alpha.1, < 6.7.0 - Fixed in
- 5.73.14, 6.7.0
- Newest release
- 6.40.0
- Severity
- Medium · CVSS 4.3
- Type
- Path traversal / file read
CWE-22 - Exploited in the wild
- Not on the CISA KEV list
checked 2026-11-04
Is your statamic/cms version affected?
Who can exploit CVE-2026-33171
- Access: A normal, low-privilege user account in the app.
CVSS vector (scored by GitHub): CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
How to fix CVE-2026-33171 in statamic/cms
- Find the installed version:
composer show statamic/cms. If you never required it yourself,composer why statamic/cmsshows which package pulls it in. - Update it:
composer update statamic/cms --with-all-dependencies. You need the fixed version for your release line (5.73.14 and 6.7.0). - If Composer will not go that high, your composer.json constraint is holding it back. Widen it (for example
"statamic/cms": "^6.7.0"if you can take that version), or upgrade the package that requires it. - Run
composer audit. It reads the same advisory data and should no longer list CVE-2026-33171. - Commit composer.lock and deploy it. On the server, run
composer install --no-devfrom the lock file, notcomposer update.
If you cannot upgrade yet
- Validate file names against an allow-list and reject paths containing ../ or absolute paths.
- If your app does not use the affected feature, note that in your audit, but still plan the upgrade.
The CVE-2026-33171 advisory
Statamic is a Laravel and Git powered content management system (CMS). Prior to versions 5.73.14 and 6.7.0, authenticated Control Panel users could read arbitrary `.json`, `.yaml`, and `.csv` files from the server by manipulating the file dictionary's `filename` configuration parameter in the fieldtype's endpoint. This has been fixed in 5.73.14 and 6.7.0.
References
- GitHub advisory GHSA-qm7r-wwq7-6f85 github.com
Other statamic/cms advisories
- medium CVE-2026-71435: Statamic: Stored Cross-Site Scripting in Automagic Form Notification Email Template 2026-08-06
- medium CVE-2026-71434: Statamic: Missing file upload validation on frontend forms allows uploading disallowed file types 2026-08-06
- medium CVE-2026-64662: Statamic: Missing authorization on navigation endpoint allows disclosure of restricted entries 2026-08-06
- medium CVE-2026-64663: Statamic: Unsafe method invocation via Antlers template resolution allows data destruction 2026-08-06
- high CVE-2026-64665: Statamic: Account takeover via OAuth email matching without email-verification check 2026-08-06
- medium CVE-2026-64664: Statamic: Missing authorization on Control Panel endpoint allows disclosure of user existence 2026-08-06
Related
Need help patching or upgrading? Laskyr does PHP and Laravel security fixes and upgrades. Tell us what you run and we reply with a plan and a price.
Ask about a fixWhere this data comes from
- Affected and fixed versions: the Packagist security advisories API (GitHub Advisory Database and FriendsOfPHP), the same data
composer audituses. Synced 2026-11-03. - Description, score, weakness and references: NIST National Vulnerability Database (NVD), checked 2026-11-04. This product uses data from the NVD API but is not endorsed or certified by the NVD.
- Exploited-in-the-wild status: the CISA Known Exploited Vulnerabilities catalog, checked 2026-11-04.
- Compiled by Daniel Lasek at Laskyr from the sources above. The summary, “who can exploit it”, “how to fix it” and hardening sections are our plain-English reading of the record and are generated from it. The quoted description is the record's own text. Spot an error? Tell us.