Skip to main content

baserCMS EUVDEUVD-2026-108983

| CVE-2026-115481 HIGH
Unrestricted Upload of File with Dangerous Type (CWE-434)
2026-10-23 GitHub_M
8.5
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as default operators-group user
  2. Delivery
    Create custom table and BcCcFile 'attachment' field
  3. Exploit
    Edit field to allow 'php' extension
  4. Execution
    Upload PHP webshell via custom_entries add
  5. Impact
    Request 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

basercms 5.4.0, < 5.4.2
basercms 5.0.0-beta1, < 5.3.2

Affected Packages

euvd basercms fix: 5.3.2, 5.4.2

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

Vendor (GitHub_M) PRIMARY 8.5 HIGH
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
vuln.today AI 8.0 HIGH

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).

3.1 AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
Active
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 23, 2026 - 14:02 EUVD
CVE Published
Oct 23, 2026 - 13:34 cve.org
HIGH 8.5

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.5%
Top 61% exploitable
Prevalence
Low
niche open-source CMS framework, limited global production deployment
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

42
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +42
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Malicious file upload attacks exploit insufficient validation when web applications accept user-provided files.

CVE-2018-18942 HIGH POC
7.2 Nov 05

In baserCMS before 4.1.4, lib\Baser\Model\ThemeConfig.php allows remote attackers to execute arbitrary PHP code via the

CVE-2017-10842 CRITICAL
9.8 Aug 29

SQL injection vulnerability in the baserCMS 3.0.14 and earlier, 4.0.5 and earlier allows remote attackers to execute arb

CVE-2023-43792 CRITICAL
9.8 Oct 30

baserCMS is a website development framework. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploita

CVE-2023-43649 CRITICAL
9.8 Oct 30

baserCMS is a website development framework. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploita

CVE-2023-25655 CRITICAL
9.8 Mar 23

baserCMS is a Content Management system. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable,

CVE-2023-25654 CRITICAL
9.8 Mar 23

baserCMS is a Content Management system. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable,

CVE-2026-30880 CRITICAL
9.2 Mar 31

OS command injection in baserCMS installer prior to version 5.2.3 allows remote attackers to execute arbitrary system co

CVE-2026-30877 CRITICAL
9.1 Mar 31

OS command injection in baserCMS update functionality allows authenticated administrators to execute arbitrary commands

CVE-2026-21861 CRITICAL
9.1 Mar 31

OS command injection in baserCMS core update functionality allows authenticated administrators to execute arbitrary syst

CVE-2017-10844 HIGH
8.8 Aug 29

baserCMS 3.0.14 and earlier, 4.0.5 and earlier allows an attacker to execute arbitrary PHP code on the server via unspec

CVE-2016-4879 HIGH
8.8 May 12

Cross-site request forgery (CSRF) vulnerability in baserCMS plugin Mail version 3.0.10 and earlier allows remote attacke

CVE-2016-4881 HIGH
8.8 May 12

Cross-site request forgery (CSRF) vulnerability in baserCMS plugin Blog version 3.0.10 and earlier allows remote attacke

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy