Skip to main content

Kunstmaan CMS CVE-2026-104890

| EUVDEUVD-2026-92446 HIGH
Unrestricted Upload of File with Dangerous Type (CWE-434)
2026-10-05 GitHub_M GHSA-p279-5wcv-45vq
7.2
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate to backend with media access
  2. Delivery
    Upload mixed-case 'shell.pHp' payload
  3. Exploit
    Bypass case-sensitive extension blacklist
  4. Execution
    File lowercased and stored in public media dir
  5. Persist
    Request uploaded file to trigger server execution
  6. Impact
    Remote code execution as web server

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

Requires a valid authenticated backend account that holds media-upload permission in Kunstmaan CMS prior to 7.3.2. Exploitation further depends on the default (or custom) blacklisted_extensions configuration still matching case-sensitively, and critically on the web server being configured to execute scripts (e.g. PHP) within the public/uploads/media/ directory - the vendor's recommended hardening of disabling script execution and sending X-Content-Type-Options: nosniff for that directory neutralizes the impact. Limiting factors: no anonymous access (credentials with the media role are mandatory), no code execution if the upload directory is served as static/non-executable content, and the mixed-case bypass path specifically targets the pre-7.3.2 handler logic.

Impact

This is a genuine but access-gated code-execution flaw rather than a mass-exploitation emergency. The provided CVSS 3.1 vector (AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H, base 7.2) correctly captures that exploitation is network-reachable with low complexity and no user interaction, but gated behind authentication (PR:H) - the description confirms this by requiring 'an authenticated backend user with media access.' Impact is full compromise (C:H/I:H/A:H) because a successful upload yields web-server code execution (CWE-434). No EPSS score, no CISA KEV listing, and no public POC were provided in the intelligence set, so there is no public exploit identified at time of analysis and no evidence of active exploitation. The practical risk hinges on how liberally media-upload roles are delegated: the input labels this PR:H, but the described 'media access' permission is often granted to ordinary content editors rather than administrators, so the real-world barrier may be closer to PR:L than PR:H - verify the privilege model against your role configuration. Overall this is a priority for any Kunstmaan deployment that grants backend media access to semi-trusted users, but not a drop-everything internet-wide threat given the authentication requirement and the niche product footprint.

Exploit ScenarioDerived

A content editor or other backend user who has been granted media-upload rights uploads a file named 'webshell.pHp'; the case-sensitive blacklist check fails to match the mixed-case extension, and the handler then lowercases it to 'webshell.php' and writes it into the web-accessible media directory. The attacker then requests that URL, and because the web server executes PHP in that directory, their code runs with web-server privileges. No public exploit code was identified, but the mechanism is fully documented in the vendor advisory and patch commit.

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

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

Alert me

AnalysisAIv1 – Oct 05, 2026

Authenticated code execution via media upload in Kunstmaan CMS (KunstmaanBundlesCMS) before 7.3.2: the MediaBundle checks the file-extension blacklist case-sensitively but lowercases the extension before writing the file, so a backend user with media-upload rights can submit a file named e.g. webshell.pHp, slip past the blacklist, and have it stored as webshell.php inside the web-accessible media directory. Impact escalates to full remote code execution, but only where the web server is configured to execute scripts in public/uploads/media/ - the vendor's hardening guidance (disable script execution for that path, send X-Content-Type-Options: nosniff) removes the execution impact. No public exploit code or confirmed in-the-wild exploitation was identified at time of analysis, and the flaw is gated behind a valid media-role account (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, 7.2).

RemediationAI

Vendor-released patch: 7.3.2 (https://github.com/Kunstmaan/KunstmaanBundlesCMS/releases/tag/7.3.2), which fixes the check-order flaw and expands the default blacklist; the underlying change is commit 1bbdfdeac8e7e91506b1a9271360b9b68d7690d3 and details are in advisory GHSA-p279-5wcv-45vq. If immediate upgrading is not possible, apply the equivalent configuration-level mitigations: set kunstmaan_media.blacklisted_extensions explicitly to the full executables set (php, php3, php4, php5, php6, php7, php8, phps, phpt, pht, phtm, phtml, phar, inc, htaccess, htpasswd, htgroup, shtml, shtm, cgi, pl, py, rb, sh, asp, aspx, ashx, asmx, ascx, jsp, jspx, cfm, cfml), recognising that on an unpatched version matching remains case-sensitive and can still be bypassed via mixed case - so this is only a partial control. The decisive compensating control is at the web-server layer: disable script execution inside public/uploads/media/ (e.g. remove the PHP handler / use a static-only location block for that path) and send X-Content-Type-Options: nosniff, which neutralises the code-execution impact even if a malicious file lands on disk; the trade-off is that any legitimate dynamically served content in that directory will stop working. After patching, consider enabling the new opt-in allowed_extensions allow-list (e.g. jpg, jpeg, png, gif, webp, pdf, docx, zip), which acts as a strict allow-list with the blacklist still applied on top; note that svg and html remain permitted by default and are same-origin stored-XSS vectors, so add them to the blacklist or exclude them via the allow-list if the project does not need them. Finally, review existing files under public/uploads/media/ for lowercase extensions that were uploaded as mixed case, and audit backend accounts holding the media-upload permission, since exploitation requires such an authenticated account.

Affected VersionsENISA

media-bundle < 7.3.1
KunstmaanBundlesCMS < 7.3.1
bundles-cms < 7.3.1

Affected Packages

composer kunstmaan/bundles-cms fix: 7.3.2
composer kunstmaan/media-bundle fix: 7.3.2
euvd bundles_cms fix: 7.3.1
euvd kunstmaanbundlescms fix: 7.3.1
euvd media_bundle fix: 7.3.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 5 packages in composer, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Kunstmaan CMS is an open source CMS built on the Symfony framework, and the affected component is the MediaBundle's FileHandler (src/Kunstmaan/MediaBundle/Helper/File/FileHandler.php). The weakness class is CWE-434 (Unrestricted Upload of File with Dangerous Type). In versions prior to 7.3.2, FileHandler::getFilePath applied the configurable blacklisted_extensions setting with a case-sensitive regular expression match, but then normalised the filename by calling strtolower() on the extension before persisting it. That ordering mismatch - case-sensitive validate, case-insensitive store - is the root cause: a mixed-case extension such as .pHp, .PHP5 or .PHTML is not matched by the blacklist check yet is written to disk with a lowercase, server-recognisable extension. The second half of the problem is that the default blacklist was minimal, containing only php and htaccess, so many other server-executable extensions (phtml, php5, phar, phps, shtml, cgi, pl, asp, jsp, cfm and others) were never on the list at all. The upstream fix (commit 1bbdfdeac8e7e91506b1a9271360b9b68d7690d3, released in 7.3.2) normalises the extension before evaluation, makes the blacklist match case-insensitively, expands the default blacklist to the full common-executable set, and introduces an opt-in strict allowed_extensions allow-list that is applied on top of the blacklist. Symfony's slugifier is also used on the base filename. The CPE data identifies the three package names under which the code ships: kunstmaan:kunstmaanbundlescms, kunstmaan:bundles-cms, and kunstmaan:media-bundle, all matched in the wildcard-fixed version range '*' since it is the version-less application component.

Know when PHP 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 7.2 HIGH
AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.8 HIGH

Media-upload is a delegable backend editor role, so PR:L rather than PR:H; network-reachable upload form with no interaction (AV:N/AC:L/UI:N) and RCE yields C/I/A:H.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/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
Privileges Required
High
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Oct 05, 2026 - 17:17 EUVD
CVE Published
Oct 05, 2026 - 15:46 cve.org
HIGH 7.2

DescriptionCVE.org

Kunstmaan CMS is an open source content management system based on the Symfony framework. Prior to 7.3.2, src/Kunstmaan/MediaBundle/Helper/File/FileHandler.php performs the blacklisted_extensions check case-sensitively in FileHandler::getFilePath and lowercases the stored extension afterward. An authenticated backend user with media access can upload a mixed-case executable extension such as PHP that bypasses the check and is stored in the web-accessible media directory with an executable lowercase extension. The default blacklist also omits several server-executable extension types, allowing the same code-execution impact where the web server executes uploaded files. This issue is fixed in version 7.3.2.

Technical POC Analysis

CWE-434 (Unrestricted Upload of File with Dangerous Type), in the Kunstmaan MediaBundle file-handling helper FileHandler::getFilePath() (src/Kunstmaan/MediaBundle/Helper/File/FileHandler.php).

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

Kunstmaan CMS deployments running versions before 7.3.2 are exposed to an authenticated code-execution flaw in the MediaBundle, where a user holding media-upload rights can bypass the file-extension blacklist by varying filename casing and place an executable script into the publicly served media directory. Any organization running this CMS with backend content or marketing staff who have upload permissions is affected, and on servers configured to execute scripts from the upload path the consequence is full remote code execution on the host, carrying complete confidentiality, integrity, and availability impact. Leadership should treat this as a high-priority platform hardening item because the primary control is a fixed configuration posture rather than a missing vendor patch.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis; interim mitigations per the vendor's hardening guidance are to disable script execution for public/uploads/media/ and send X-Content-Type-Options: nosniff, coupled with restricting media-upload privileges to the minimum necessary accounts and monitoring that directory for unexpected executable files.

Threat Intelligence Overview

EPSS Score
0.4%
Top 66% exploitable
Prevalence
Low
niche open-source Symfony-based CMS, limited enterprise footprint
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

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.4%
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

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
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.

More in PHP

View all
CVE-2019-11043 CRITICAL POC
9.8 Oct 28

In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it

CVE-2012-1823 CRITICAL POC
9.8 May 11

sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

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