October CMS has Safe Mode Bypass via CSS Preprocessor Compilers
Impact
A server-side information disclosure vulnerability was identified in the handling of CSS preprocessor files. Backend users with Editor permissions could craft .less, .sass, or .scss files that leverage the compiler's import functionality to read arbitrary files from the server. This worked even with cms.safe_mode enabled.
Source excerpt · OSVImpact
- Potential exposure of sensitive server-side files
- Requires authenticated backend access with Editor permissions
- Only relevant when
cms.safe_modeis enabled (otherwise direct PHP injection is already possible)
Affected packages
Start with the recorded fix for your release branch. Check your installed version and test compatibility before upgrading. Fixing this advisory does not rule out other vulnerabilities in the release.
| Affected range | Recorded fix |
|---|---|
| Earlier releases before 3.7.14Ecosystem versions | 3.7.14 |
| From 4.0.0 before 4.1.10Ecosystem versions | 4.1.10 |
Version evidence: OSV · GHSA-3888-q23f-x7qh
View original version evidence (169 explicit versions)
Original source description
A server-side information disclosure vulnerability was identified in the handling of CSS preprocessor files. Backend users with Editor permissions could craft .less, .sass, or .scss files that leverage the compiler's import functionality to read arbitrary files from the server. This worked even with cms.safe_mode enabled.
Impact
- Potential exposure of sensitive server-side files
- Requires authenticated backend access with Editor permissions
- Only relevant when
cms.safe_modeis enabled (otherwise direct PHP injection is already possible)
Patches
The vulnerability has been patched in v3.7.14 and v4.1.10. When cms.safe_mode is enabled, .less, .sass, and .scss files can no longer be created, uploaded, or edited across the CMS editor, media manager, and file upload interfaces. All users are encouraged to upgrade to the latest patched version.
Workarounds
If upgrading immediately is not possible:
-
Set
cms.editable_asset_typesconfig to['css', 'js']to remove preprocessor file types from the editor -
Restrict Editor tool access to fully trusted administrators only
-
Reported by Chris Alupului