Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as default operators-group user
-
DeliveryCreate custom table and BcCcFile 'attachment' field
-
ExploitEdit field to allow 'php' extension
-
ExecutionUpload PHP webshell via custom_entries add
-
ImpactRequest stored file to execute code as web server user
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V5 - File Handling File type validation, storage isolation
MITRE ATT&CK
2 techniques across 2 tactics: Command and Control, Persistence The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that an administrator installs the BcCustomContent plugin (which is NOT in BcApp.defaultInstallCorePlugins, so it is absent from default installs) and leaves the pre-selected 'available to all users' radio during install - that acceptance is precisely what causes PermissionGroupsService::build() to write the wildcard allow rules (url /baser/<prefix>/bc-custom-content/*, method *, auth true) for every non-admin group because BcCustomContent ships no config/permission.php. Given that, the attacker needs only an account in the default 'operators' group. The attacker then edits the custom field's allowed upload extensions to 'php' (validated only against /^[a-z,]+$/ in CustomFieldsTable.php:140, and used verbatim as the allowlist in CustomEntriesTable.php:337-358) and uploads a .php file that is served as executed PHP. Limiting factors: requires administrator installation of a non-default plugin plus acceptance of the default radio; requires an authenticated operator-level account; reproduction was confirmed only on Apache (apache2handler); on releases before 5.1.10 the extension-editing step is unnecessary because setValidateFileExt() skips the check when file_ext is empty. USE_CORE_API and USE_CORE_ADMIN_API are false in the shipped .env.example. |
| Impact | This is a genuine high-severity flaw (CVSS 4.0 8.5) but its real-world urgency is tempered by chained preconditions rather than being a drive-by remote exploit. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:H) is internally consistent with the mechanism: network-reachable, low attacker privilege (a default 'operators' account), but requiring active user interaction - here supplied by an administrator who installs BcCustomContent and accepts the pre-selected 'available to all users' radio, which is what writes the wildcard permission rules. The vuln.today Decision label is 'this_week', consistent with a serious-but-not-emergency priority. No EPSS score and no CISA KEV status are present in the input, so there is no signal of widespread or active exploitation; exploitation status is therefore 'no public exploit identified at time of analysis' in the KEV sense, but note a detailed, reporter-demonstrated reproduction is published in the GHSA advisory (a public PoC reference exists; it is not verified as packaged working exploit code beyond the single commit 02d37a7 the reporter ran it on). No SSVC exploitation/automatable/technical-impact decision points are supplied beyond the Decision label. The limiting factors - an administrator must install a non-default plugin and leave the default radio, and the attacker needs an authenticated operator account - mean this is a real priority for baserCMS 5.x operators but not mass-exploitable against default installs, since BcCustomContent is absent from BcApp.defaultInstallCorePlugins. |
| Exploit ScenarioDerived | An administrator installs the BcCustomContent plugin and leaves the pre-selected 'available to all users' radio, which writes wildcard allow rules granting the default operators group full access to the plugin's screens. An attacker holding only an operators account then creates a custom BcCcFile field, edits its allowed extensions to 'php' (the value is only checked against /^[a-z,]+$/), uploads a PHP webshell through a custom entry, and requests it under /files/ to execute arbitrary code as the web server user. A detailed working reproduction of this chain is published in the GHSA advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 23, 2026
Arbitrary PHP file upload leading to code execution in baserCMS: any account in the default 'operators' group can store and execute PHP under the document root once an administrator installs the BcCustomContent plugin and leaves the pre-selected 'available to all users' radio in place during installation. Affected are baserCMS 5.0.0-beta1 through 5.3.1 and 5.4.0 through 5.4.1; BcCustomContent is not part of BcApp.defaultInstallCorePlugins, so stock installs are not exposed until an administrator adds the plugin and accepts that default. The vendor advisory publishes a full reproduction procedure (a public PoC reference; it is not verified as weaponized exploit code), there is no CISA KEV entry, and vuln.today priority places remediation in this week's work rather than an emergency response.
RemediationAI
Vendor-released patch: upgrade to baserCMS 5.3.2 or 5.4.2 (release tags https://github.com/baserproject/basercms/releases/tag/5.3.2 and https://github.com/baserproject/basercms/releases/tag/5.4.2). The fixes change the installer and API defaults so permission defaults to 0/false rather than true, add PermissionGroupsService::hasPermissionDefinition(), and only create full-access rules when the administrator explicitly selects 'available to all users' (permission=true) during install; apply the corresponding commits 2ed19c878add5c26fc765572e0e77173c1f1fdb5 and b0ef31b10dc6267b48ebc9a80d34bc7c4c09c311 if maintaining a fork. Where upgrading is not immediately possible: do not install BcCustomContent (and treat bc-seo and bc-mcp the same way), or, if it is already installed, decline/avoid the pre-selected 'available to all users' option and remove the wildcard /baser/*/bc-custom-content/* entries written with auth=1 so non-admin groups fall back to the seeded /baser/admin/* deny; the trade-off is that operators lose all access to the plugin's screens. Because the flaw is completed by the stored extension allowlist, also restrict operators from editing custom fields, and add a server-level deny for server-executable extensions in the upload directory (Apache RemoveHandler/php_flag engine off for /files/bc_custom_content, or an equivalent nginx location returning 403) or a deny list mirroring BcBurgerEditor's Bge.deniedExtension mechanism introduced in commit c92aae688, rejecting php-family extensions regardless of the per-field allowlist; the trade-off is that the PHP handler is disabled or such filenames are rejected for every upload, including legitimate ones. Restricting the document-root serving of uploaded files to static content is the most direct compensating control, with the caveat that the vendor's tested platform was Apache only and the api prefixes were not exercised.
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
The chain combines two defects. First, CWE-276 incorrect default permissions in plugins/baser-core/src/Service/PermissionGroupsService.php: build() reads a plugin's config/permission.php to derive per-group ACL entries, and when that file does not exist it treats absence as 'no restriction' rather than 'no grant', writing url /baser/<prefix>/<plugin>/*, method *, auth true for every non-admin group. BcCustomContent ships no config/permission.php in any release, so installing it via the admin installer with the default 'available to all users' radio selected created those wildcard rules for the default operators group (including the admin, api, api/admin and front prefixes). Second, CWE-434 unrestricted upload of a dangerous file type in plugins/bc-custom-content: CustomFieldsTable.php:140 validates the field's file_ext value only against /^[a-z,]+$/, and CustomEntriesTable.php:337-358 uses that stored value verbatim as the upload allowlist, so an operator-level user can add 'php' to the permitted extensions and then upload a .php file through the BcCcFile custom field; the file lands under /files/bc_custom_content/... and is served as executed PHP. The assessed CVSS:3.1 vector AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H reflects a network-reachable attack that requires an authenticated low-privileged operator account and user interaction (the administrator's install-and-accept step, plus the operator's own authenticated form submissions); the advisory's testing was performed on Apache (apache2handler) only and did not exercise the api prefixes, and on releases before 5.1.10 the extension-editing step is unnecessary because setValidateFileExt() skips the extension check entirely when file_ext is empty.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Network-reachable with a low-privilege operators account (PR:L), but requires an administrator's plugin install and default-radio acceptance (UI:R); arbitrary PHP execution as the web server user yields C:H/I:H/A:H with no cross-component scope change (S:U).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
baserCMS is a website development framework. Starting in version 5.0.0-beta1 and prior to versions 5.3.2 and 5.4.2, PermissionGroupsService::build() reads a plugin's config/permission.php to decide what each user group may reach. When that file is absent it writes a wildcard allow rule instead: url /baser/<prefix>/<plugin>/*, method *, auth true, for every non-admin group. BcCustomContent has no such file in any release. After an administrator installs it, the default operators group can store and execute arbitrary PHP under the document root. Versions 5.3.2 and 5.4.2 patch the issue.
Technical POC Analysis
Two defects chained, and the exploit needs both.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Organizations using baserCMS with the BcCustomContent plugin are exposed to a high-severity vulnerability that allows any user in the default 'operators' group to upload and execute arbitrary PHP code, potentially leading to full system compromise. This affects subsidiary sites or marketing platforms built on baserCMS where administrators have installed the plugin with default permissions, enabling low-privileged users to escalate to code execution. Leadership should prioritize remediation within the week, as a public proof-of-concept exists, though no active exploitation has been confirmed.
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
Malicious file upload attacks exploit insufficient validation when web applications accept user-provided files.
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-108983
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB