Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain administrator session cookie
-
DeliveryPOST percent-encoded path to bc-theme-file theme_files/edit.json API
-
ExploitEncoded %2e%2e%2f bypasses normalizePath containment check
-
Executionrawurldecode writes PHP into webroot outside theme dir
-
ImpactRequest planted file over HTTP for code execution
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 | Three concrete, vendor-confirmed prerequisites must all hold: (1) the optional BcThemeFile plugin must be explicitly installed - it is in BcApp.corePlugins but NOT in BcApp.defaultInstallCorePlugins, so default installs lack it and the route returns 404; (2) a session belonging to the administrator group (BcApp.adminGroupId) is required - the route is auth=>false but PermissionsService::check() admits only admin-group members, and a normal operator gets 403 unless an administrator alters the rule; (3) a same-origin Origin header must be present because BcUtil::isSameOriginAsCurrent() returns false without one. USE_CORE_ADMIN_API can remain at its default false because BcAdminApiController::beforeFilter() admits SessionAuthenticator-backed requests (the admin SPA's mechanism) and FormProtection is disabled for Api/Admin. The Admin WEB form is NOT exploitable via this encoded-path tampering: fullpath is absent from its _Token[unlocked], so tampering fails FormProtection with HTTP 400. Net limiting factor: exploitation requires pre-existing trusted administrator access to a non-default configuration, which is why CVSS is PR:H. |
| Impact | This is a genuine but conditional risk, best characterized as a privilege-boundary-crossing flaw rather than a mass-exploitable internet threat. The CVSS 3.1 vector (AV:N/AC:L/PR:H/UI:N, C:H/I:H/A:H, score 7.2) tells a consistent story: network-reachable, low complexity, no user interaction, but requiring high privileges (PR:H) - matching the advisory's confirmed precondition of an authenticated administrator session plus a same-origin Origin header. The vendor and GHSA confirm active patch availability and the mechanism; there is no CISA KEV listing and no EPSS score in the provided data, so there is no evidence of active or widespread exploitation. The vuln.today decision label is 'this_week', consistent with a serious issue that is gated behind administrator access rather than an emergency. The practical ceiling on risk is threefold and all vendor-confirmed: (1) the vulnerable BcThemeFile plugin is NOT installed by default (absent from BcApp.defaultInstallCorePlugins), so default installs return 404; (2) an administrator-group session is required, and a lower-privilege operator receives 403 unless an admin changes the permission rule; (3) a same-origin Origin header is needed. The elevated impact comes from the privilege ESCALATION it enables - theme editing is intended to allow PHP template writing, but encoded traversal lets an admin write executable PHP into webroot/, config/, or anywhere the web-server user can write, exceeding the intended boundary. Note the signal nuance: a reproduction exists in the GHSA advisory showing a successful write, but there is no independent KEV/EPSS corroboration of exploitation, so treat this as a demonstrated-but-not-observed-in-the-wild issue requiring an existing trusted-admin compromise or malicious admin. |
| Exploit ScenarioDerived | An attacker who already holds (or has phished/compromised) a baserCMS administrator session on an instance with the optional BcThemeFile plugin installed sends a crafted POST to the Admin API theme-files edit endpoint with a percent-encoded traversal path (e.g. %2e%2e%2f...) and PHP contents. Because the containment check runs on the raw value but the sink rawurldecodes it before writing, the file lands outside the theme directory (such as webroot/probe.php) and is then executed over HTTP, yielding arbitrary code execution as the web-server user. A working reproduction (curl PoC) is published in the GHSA advisory, though it is not verified as independent standalone exploit tooling; low attack complexity means the request is trivial to reproduce once admin access is held. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 23, 2026
In baserCMS, an authenticated administrator with the optional BcThemeFile plugin installed can write PHP files outside the theme directory - including into webroot - and execute them over HTTP, because the Admin API validates a raw 'fullpath' value and the write sink then applies rawurldecode() to it. The flaw affects the 5.2.x branch before 5.3.2 and the 5.4.x branch before 5.4.2, and is the third bypass of the protections added for CVE-2026-30940 by routing percent-encoded traversal through validation. Exploitation is not a mass-internet scenario: the CVSS vector is PR:H, and three conditions must all hold - the non-default BcThemeFile plugin installed, a session in the administrator group, and a same-origin Origin header - while the Admin web form itself is not exploitable this way because FormProtection blocks tampering with fullpath. The advisory includes a working reproduction request; no confirmed active exploitation (not in CISA KEV) and vendor fixes are released.
RemediationAI
Upgrade to the fixed release for your branch: baserCMS 5.3.2 for the 5.2.x line (https://github.com/baserproject/basercms/releases/tag/5.3.2) or 5.4.2 for the 5.4.x line (https://github.com/baserproject/basercms/releases/tag/5.4.2); the change is commit 53ecf177dfb10eb1fb89c4b42d313983329aa162, which decodes before validating via a shared BcThemeFileUtil::isWithinDir() helper and also adds containment checks to the admin web route's path assembly and to the copy source. Where patching must wait, the decisive compensating control is to uninstall or disable the optional BcThemeFile plugin - the route then returns 404 and the exposure is removed - at the cost of losing theme/plugin template file editing through the admin UI. Also review membership of the administrator group (BcApp.adminGroupId), since the route admits any session in that group and ordinary operators receive 403 unless an administrator has changed the rule. Note that stopping encoded-path tampering does not come from the Admin web form (it is already protected by FormProtection) and that leaving USE_CORE_ADMIN_API at false is not a mitigation, because SessionAuthenticator-backed requests are admitted regardless.
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 content-management framework, and the affected endpoint is the theme-file editing API exposed by the optional BcThemeFile plugin. The root cause is a check-before-decode ordering in a classic path traversal (CWE-22; the advisory also cites CWE-179). ThemeFilesService::update() passes the request's 'fullpath' to assertWithinThemeDir(), and getFullpath() runs its own containment check, but both operate on the raw request value; the sink in ThemeFileForm::_execute() (plugins/bc-theme-file/src/Form/ThemeFileForm.php:71) writes to rawurldecode($data['fullpath']). Because normalizePath() resolves only literal '..' segments, a payload such as '%2e%2e%2f%2e%2e%2f...%2fwebroot%2fprobe.php' is treated as one ordinary path segment by the containment checks and turns back into '../' only at the write, landing outside the theme directory anywhere the web server user can write. The same check-before-decode ordering appears in ThemeFilesService::copy() (assertWithinThemeDir at line 191, copy(rawurldecode($fullpath)) at line 201), although that sink was not dynamically verified. Access control is not the barrier here: the route is registered with auth => false, PermissionsService::check() admits only members of BcApp.adminGroupId, USE_CORE_ADMIN_API can stay at its default false because BcAdminApiController::beforeFilter() admits SessionAuthenticator-backed requests, and FormProtection validation is disabled for Api/Admin. The Admin web form is unaffected because 'fullpath' is absent from its _Token[unlocked], so tampering fails FormProtection with HTTP 400. The upstream fix replaces the realpath/normalizePath logic with a shared BcThemeFileUtil::isWithinDir() helper, adds a getBaseDir() helper, and applies boundary checks to the admin web route's parseArgs() and to the copy source.
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:H/UI:N/S:U/C:H/I:H/A:H
Network API reachable with low complexity (UI:N), but a required administrator-group session forces PR:H; arbitrary PHP write/execute yields full C:H/I:H/A:H with unchanged scope.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
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.
Technical POC Analysis
CWE-22 path traversal arising from a check-before-decode ordering bug (the advisory also tags CWE-179).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A high-severity vulnerability (CVE-2026-114622) in baserCMS versions 5.2.x before 5.3.2 and 5.4.x before 5.4.2 allows an authenticated administrator with the optional BcThemeFile plugin to write and execute PHP files outside the theme directory, potentially leading to remote code execution. This requires three conditions: the plugin installed, admin group session, and same-origin Origin header. Exploitation is not currently active, but organizations using baserCMS with this plugin are at risk of website compromise, data breaches, and reputational damage.
Apply vendor patch.
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-108993
NVD
CVE.org
EPSS
GitHub
VulDB
Exploit-DB