Skip to main content
← All vulnerabilities
CVE-2026-114623EUVD-2026-108994GHSA-RQR8-GMX5-XVRR

baserCMS: Path traversal in the BcThemeFile admin screen allows file disclosure

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.3.2, 5.4.2
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: partial

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.

Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.

Read the original 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.

Timeline

  1. CVE published
  2. First seen by cve.now
  3. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: partial

  4. Record last updated

Affected versions

  • baserproject basercms

    From 5.0.0 · fixed in 5.3.2; From 5.4.0 · fixed in 5.4.2

References 5

GitHub · baserproject/basercms