Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as theme-file view-only user
-
DeliverySend raw GET preserving literal ../ segments
-
ExploitACL matches unresolved request path and permits
-
ExecutionThemeFilesService::get() reads resolved out-of-theme file
-
Impactconfig/install.php DB credentials exposed in textarea
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires: (1) the optional BcThemeFile (bc-theme-file) plugin to be enabled - it is disabled by default but is a bundled core plugin enabled with one click from the admin UI; (2) an authenticated admin-panel account holding the theme-file VIEW permission (edit permission is NOT required, and view-only non-admin accounts suffice, which is the privilege-escalation core of this issue); and (3) a client that preserves the literal ../ dot segments rather than normalizing them - i.e. a raw HTTP client such as Burp Repeater or curl --path-as-is, since browser address bars and form actions strip them. Exploitation is bounded: only .php, .css, .js, and .ctp files are readable; .env, .pem, and SQLite .db files are not disclosed; SQLite deployments have an empty database password so credential theft is meaningful mainly for MySQL/PostgreSQL; and the config/app_local.php Security.salt is only useful when not overridden by environment configuration. The flaw does not permit file writes or code execution and does not affect the separate API getFullpath() route. |
| Impact | This is a genuine but moderate, condition-gated issue rather than a drop-everything emergency. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N = 6.5) is internally consistent with the description: network-reachable admin web screen, low-privileged authenticated access, no user interaction, and high confidentiality impact (source and plaintext DB credentials) with no integrity or availability impact. Several escalation signals are ABSENT from the input: no EPSS probability was provided, and the CVE is NOT listed in CISA KEV, so there is no evidence of active or widespread exploitation. The vuln.today decision label is 'this_month', signalling a scheduled priority rather than act_now/emergency. Offsetting the risk, the GHSA advisory includes concrete PoC HTTP requests, so exploitation is well-understood and low-effort for anyone who already holds an account. The strongest limiting factors are that the BcThemeFile plugin is disabled by default (though it is a bundled core plugin enabled with one admin click) and that an authenticated account with theme-file view permission is required - exploitation is therefore privilege-escalation from a low-trust internal user, not anonymous internet exploitation. Net: a real priority for operators who have enabled BcThemeFile and provision non-admin theme users, but low real-world risk for default deployments. |
| Exploit ScenarioDerived | A low-privileged authenticated user who has been granted only the theme-file view permission uses a raw HTTP client (Burp Repeater or curl --path-as-is, because browsers normalize the dot segments) to request the view/edit action with literal ../ segments preserved, escaping the theme directory. The server authorizes the unresolved request path, then reads and renders config/install.php into the form textarea, disclosing plaintext MySQL or PostgreSQL database credentials. The GHSA advisory contains working PoC request examples demonstrating this against baserCMS 5.4.1. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 23, 2026
An authenticated user holding only theme-file VIEW permission on a baserCMS 5.0.0-through-5.4.1 installation can read arbitrary .php, .css, .js and .ctp files outside the theme directory, including config/install.php which the installer writes with the plaintext database password and config/app_local.php which may expose the Security.salt fallback. The read path ThemeFilesService::get() is the one path-handling sink in the bundled but default-disabled BcThemeFile plugin that never received the assertWithinThemeDir() guard applied to every write sink, so a legitimate view-only grant becomes application source and credential disclosure; because authorization is evaluated against the unresolved request path, this also constitutes privilege escalation. The issue is not listed in CISA KEV, a public PoC reference exists in the upstream GHSA advisory (which reports reproduction on 5.4.1 with MySQL and includes request-level screenshots) but it is not independently verified as working exploit code, and the vendor has released fixed versions 5.3.2 and 5.4.2.
RemediationAI
Upgrade to baserCMS 5.3.2 (5.3 branch) or 5.4.2 (5.4 branch); those releases contain commits 53ecf177dfb10eb1fb89c4b42d313983329aa162 and 9bc50d7a47cd834dad5ed80ad7a2e9fcb63f1321, which add a BcThemeFileUtil::isWithinDir() containment check in ThemeFilesController::parseArgs() so that an out-of-theme fullpath returns notFound(), route getFullpath() through the same helper, and add assertWithinSourceDir() to validate the copy source in copyToTheme(). If upgrading immediately is not possible, disable the BcThemeFile plugin from the admin plugin management screen - it is not enabled by default, so most installations are already outside the attack surface, and the trade-off is loss of the theme template browsing/editing feature - and in parallel audit accounts and groups holding the shipped theme-file 'file view' rule (GET /baser/admin/bc-theme-file/theme_files/view/*), removing it from any non-administrator group, which costs those users the legitimate read-only template preview. Because config/install.php can be read on unpatched MySQL or PostgreSQL deployments, rotate the database credential and review config/app_local.php for a Security.salt that is not overridden by environment configuration once the fix is applied; browser address bars and form actions normalize ../ away, so testing should be done with a raw client such as curl --path-as-is against a patched host to confirm the request is rejected while normal theme template display still works.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
baserCMS is a PHP web framework built on CakePHP, and the affected component is its optional BcThemeFile (bc-theme-file) core plugin, which lets administrators browse and edit theme templates. The root cause is CWE-22 (the advisory also classifies it as CWE-200 information exposure and CWE-863 incorrect authorization): ThemeFilesService::get() instantiates a ThemeFile entity from a caller-supplied path with no boundary validation, whereas every other sink in the same service - create, update, delete, copy, upload and copyToTheme - calls assertWithinThemeDir() after hardening in 5.2.9 and 5.3.0. On the Admin web route, ThemeFilesController::parseArgs() builds the fullpath by concatenating the view path with the raw, rawurldecode'd URL segments, so literal ../ sequences survive into the filesystem call, and both view() and edit() hand that value straight to get(); the separate API route instead uses BcThemeFileService::getFullpath(), which applies a $type allowlist and a base-directory containment check and is therefore not vulnerable. Access control compounds the problem: AppController::checkPermission() passes $request->getPath() to PermissionsService::check(), and convertRegexUrl() turns the wildcard rule /baser/admin/bc-theme-file/theme_files/* into .*?, matching the traversal-bearing URL before the dot segments are resolved, so the shipped 'file view' rule (GET /theme_files/view/*) is sufficient and edit rights are not needed. Disclosure is limited by the entity's type check to text files (.php, .css, .js, .ctp) whose contents are rendered into the management form's <textarea name="contents">; .env, .pem and SQLite .db files are not disclosed, SQLite deployments carry an empty database password, and no file write or code execution follows from the read path itself.
Know when Basercms gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Network-reachable admin screen (AV:N) exploitable by a low-privileged authenticated view-only user (PR:L) with only trivial ../ preservation needed (AC:L); high confidentiality from source/credential disclosure, no integrity or availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
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.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
In baserCMS before 4.1.4, lib\Baser\Model\ThemeConfig.php allows remote attackers to execute arbitrary PHP code via the
SQL injection vulnerability in the baserCMS 3.0.14 and earlier, 4.0.5 and earlier allows remote attackers to execute arb
baserCMS is a website development framework. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploita
baserCMS is a website development framework. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploita
baserCMS is a Content Management system. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable,
baserCMS is a Content Management system. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable,
OS command injection in baserCMS installer prior to version 5.2.3 allows remote attackers to execute arbitrary system co
OS command injection in baserCMS update functionality allows authenticated administrators to execute arbitrary commands
OS command injection in baserCMS core update functionality allows authenticated administrators to execute arbitrary syst
baserCMS 3.0.14 and earlier, 4.0.5 and earlier allows an attacker to execute arbitrary PHP code on the server via unspec
Cross-site request forgery (CSRF) vulnerability in baserCMS plugin Mail version 3.0.10 and earlier allows remote attacke
Cross-site request forgery (CSRF) vulnerability in baserCMS plugin Blog version 3.0.10 and earlier allows remote attacke
EUVD-2026-108994
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB