/

CVE-2026-104890

Severity:

HIGH RISK

(7.2)

Unrestricted File Upload (CWE-434) in Kunstmaan CMS

CVE-2026-104890

Deferred

Vulnerability type

Category:

Unrestricted File Upload

CWE:

CWE-434

Impact:

Remote Code Execution

Severity:

HIGH RISK

(7.2)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Kunstmaan CMS contains an unrestricted file upload weakness in its media handling logic, allowing an authenticated backend user with media access to bypass extension checks using mixed-case executable filenames. If uploaded files are stored in a web-accessible directory and the web server executes their extension, an attacker may achieve remote code execution.

Kunstmaan CMS contains an unrestricted file upload weakness in its media handling logic, allowing an authenticated backend user with media access to bypass extension checks using mixed-case executable filenames. If uploaded files are stored in a web-accessible directory and the web server executes their extension, an attacker may achieve remote code execution.

Affected context

The issue occurs in Kunstmaan CMS media uploads when extension validation is performed case-sensitively but the filename extension is normalized to lowercase afterward. Risk is increased when authenticated backend users can upload media, uploaded files are reachable through the web server, and the server is configured to execute one or more permitted extension types.

The issue occurs in Kunstmaan CMS media uploads when extension validation is performed case-sensitively but the filename extension is normalized to lowercase afterward. Risk is increased when authenticated backend users can upload media, uploaded files are reachable through the web server, and the server is configured to execute one or more permitted extension types.

Exploit preconditions

  • Attack surface: Backend media-upload functionality
  • Required access: An authenticated user account with permission to manage media
  • Trigger point: File extension validation and storage in the media directory
  • Why exploitation is possible: Case-sensitive blacklist checks can be bypassed by mixed-case executable extensions, while subsequent normalization stores the extension in a form recognized by the web server
  • Additional condition: The uploaded file must be placed in a web-accessible location served by a runtime that executes its extension
  • Attack surface: Backend media-upload functionality
  • Required access: An authenticated user account with permission to manage media
  • Trigger point: File extension validation and storage in the media directory
  • Why exploitation is possible: Case-sensitive blacklist checks can be bypassed by mixed-case executable extensions, while subsequent normalization stores the extension in a form recognized by the web server
  • Additional condition: The uploaded file must be placed in a web-accessible location served by a runtime that executes its extension

Why this happens

The vulnerability results from inconsistent normalization and validation of uploaded file extensions. Kunstmaan checks the extension against a blacklist before converting it to lowercase, so differently cased representations may evade the check. The default blacklist may also fail to cover all server-executable extension types. This behavior maps to CWE-434 because the application permits potentially executable files to be uploaded without reliably restricting their type or execution context.

The vulnerability results from inconsistent normalization and validation of uploaded file extensions. Kunstmaan checks the extension against a blacklist before converting it to lowercase, so differently cased representations may evade the check. The default blacklist may also fail to cover all server-executable extension types. This behavior maps to CWE-434 because the application permits potentially executable files to be uploaded without reliably restricting their type or execution context.

Potential impact

  • An attacker may execute arbitrary server-side code
  • The web application could be compromised
  • Sensitive files or application data may be accessed
  • The attacker could alter content or abuse the CMS account's privileges
  • The server may be used for further attacks against connected systems
  • An attacker may execute arbitrary server-side code
  • The web application could be compromised
  • Sensitive files or application data may be accessed
  • The attacker could alter content or abuse the CMS account's privileges
  • The server may be used for further attacks against connected systems

General mitigation guidance

Mitigation generally focuses on allowlisting file types rather than relying on a blacklist, normalizing filenames before validation, and separating file type verification from filename extension checks. Uploaded content can be stored outside the web root or served through a non-executable handler, with execution disabled in upload directories by default. Additional controls include validating file signatures where appropriate, generating server-side filenames, restricting media permissions, applying least privilege to the application process, and limiting the capabilities of authenticated backend users.

Mitigation generally focuses on allowlisting file types rather than relying on a blacklist, normalizing filenames before validation, and separating file type verification from filename extension checks. Uploaded content can be stored outside the web root or served through a non-executable handler, with execution disabled in upload directories by default. Additional controls include validating file signatures where appropriate, generating server-side filenames, restricting media permissions, applying least privilege to the application process, and limiting the capabilities of authenticated backend users.

How teams detect issues like this

Detection can include static analysis for case-sensitive extension checks, lowercasing performed after validation, blacklist-only upload filters, and media paths exposed directly to executable web handlers. Code reviews should examine upload authorization, storage location, content validation, and web server execution policy. Runtime monitoring can alert on executable extensions, unexpected script requests in media directories, and anomalous backend upload activity. CI policy checks and automated security review tools may help identify these patterns before deployment.

Detection can include static analysis for case-sensitive extension checks, lowercasing performed after validation, blacklist-only upload filters, and media paths exposed directly to executable web handlers. Code reviews should examine upload authorization, storage location, content validation, and web server execution policy. Runtime monitoring can alert on executable extensions, unexpected script requests in media directories, and anomalous backend upload activity. CI policy checks and automated security review tools may help identify these patterns before deployment.

Sources

SourceLink
github.comgithub.com/Kunstmaan/KunstmaanBundlesCMS/commit/1bbdfdeac8e7e91506b1a9271360b9b68d7690d3
github.comgithub.com/Kunstmaan/KunstmaanBundlesCMS/releases/tag/7.3.2
github.comgithub.com/Kunstmaan/KunstmaanBundlesCMS/security/advisories/GHSA-p279-5wcv-45vq

Frequently asked

questions

It can be exploitable through the CMS backend when the affected media-upload

functionality is reachable by an authenticated user with media permissions

and uploaded files are accessible through the web server.

Typically, no. The described attack requires an authenticated backend account

with permission to upload or manage media, although the impact may extend to

the server if the uploaded file is executed.

Normalize input before applying validation, use a strict allowlist of

non-executable file types, and store uploads outside executable web paths or

serve them through a non-executing mechanism.

Combine authorization checks, content and signature validation, controlled

server-side filenames, non-executable upload storage, least-privilege

service accounts, and monitoring for unexpected script activity.

It can be exploitable through the CMS backend when the affected media-upload

functionality is reachable by an authenticated user with media permissions

and uploaded files are accessible through the web server.

Typically, no. The described attack requires an authenticated backend account

with permission to upload or manage media, although the impact may extend to

the server if the uploaded file is executed.

Normalize input before applying validation, use a strict allowlist of

non-executable file types, and store uploads outside executable web paths or

serve them through a non-executing mechanism.

Combine authorization checks, content and signature validation, controlled

server-side filenames, non-executable upload storage, least-privilege

service accounts, and monitoring for unexpected script activity.

Find out what's already
exploitable in your codebase.