---
id: "CVE-2026-114622"
kind: "vulnerability"
aliases: ["CVE-2026-114622"]
title: "baserCMS: encoded path traversal lets an admin write and run PHP files"
severity: "high"
cvss: 7.2
epss: 0.00663
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["basercms", "cms", "package", "php", "self-hosted"]
not_affected_if: ["default-config", "patched-version", "plugin-not-installed"]
published_at: "2026-10-23T14:17:51+00:00"
first_seen_at: "2026-10-23T21:57:34+00:00"
updated_at: "2026-10-25T12:38:50+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-114622", "first_seen_at": "2026-10-23T21:57:34+00:00"}, {"source": "epss", "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-114622", "first_seen_at": "2026-10-25T12:38:50+00:00"}]
---

# baserCMS: encoded path traversal lets an admin write and run PHP files

In baserCMS, the optional BcThemeFile plugin decodes theme file paths after its path checks, so percent-encoded traversal can write files outside the theme directory. An authenticated administrator can plant PHP files in writable locations such as the webroot and execute them on the server.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the baserCMS version in the project, for example `composer show basercms/basercms` or the admin footer; affected are `5.2.3` to before `5.3.2` and `5.4.0` to before `5.4.2`.
- Check whether the BcThemeFile plugin is installed and enabled, for example `ls plugins/` for BcThemeFile and its entry in the plugin list in the admin.

## Fix

- Upgrade baserCMS to `5.3.2` on the 5.3 line or `5.4.2` on the 5.4 line.
- Until patched, disable the BcThemeFile plugin if it is not needed.

## Timeline

- 2026-10-23T21:57:34+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-114622
- 2026-10-25T12:38:50+00:00 epss https://api.first.org/data/v1/epss?cve=CVE-2026-114622

## From the sources

baserCMS is a website development framework. In versions 5.2.3 before 5.3.2 and 5.4.0 before 5.4.2, the optional BcThemeFile plugin's Admin API validates a raw path in ThemeFilesService::update() and getFullpath(), but ThemeFileForm::_execute() subsequently applies rawurldecode() to fullpath before writing. Because normalizePath() resolves only literal dot segments, percent-encoded traversal can pass the containment checks and become a path outside the theme directory at the write sink. An authenticated administrator can write PHP files into writable locations such as webroot and execute them, exceeding the intended theme-template editing boundary. The source also identifies the same check-before-decode ordering in ThemeFilesService::copy(), although that path was not dynamically verified. Exploitation requires the non-default plugin, an administrator session, and a same-origin Origin header; USE_CORE_ADMIN_API=false does not block session-authenticated requests. The Admin web form is not affected by this encoded-path tampering because FormProtection protects fullpath. This is a third bypass of the protections associated with CVE-2026-30940, using encoded traversal decoded after validation. This issue has been patched in versions 5.3.2 and 5.4.2.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
