CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-53599

CVE-2026-53599: Authenticated Remote Code Execution in REDAXO CMS via Mediapool File Upload Validation Bypass

Alon Barad
Alon Barad
Software Engineer

Aug 1, 2026·7 min read·0 visits

Executive Summary (TL;DR)

A regression in REDAXO's file extension blocklist logic allows authenticated users with upload privileges to bypass validation using multi-segmented filenames like 'file.php.any.jpg', leading to RCE in certain web server configurations.

An authenticated file upload validation bypass vulnerability exists in the REDAXO CMS Mediapool addon in versions 5.18.2 through 5.21.0. Under permissive web server configurations, this allows authenticated users with media upload privileges to achieve remote code execution via multi-segment extension file uploads.

Vulnerability Overview

The REDAXO Content Management System (CMS) is a modular web publishing framework utilizing system addons to manage digital assets. A critical component within this framework is the Mediapool addon, which provides a centralized interface for uploading, validating, and managing administrative media files. This component exposes a significant attack surface because it acts as the primary gateway for untrusted files entering the web server filesystem. An authenticated backend user possessing the media[upload] privilege can interact with this component to write files to the public-facing directory of the application.

During a security evaluation of REDAXO versions between 5.18.2 and 5.21.0, a critical file upload validation bypass was identified. This vulnerability is classified under CWE-434 (Unrestricted Upload of File with Dangerous Type) and is tracked as CVE-2026-53599 or GHSA-98pp-vccm-qm25. The flaw is rooted in a logical validation regression introduced in the rex_mediapool::isAllowedExtension method within the media pool addon's library file (redaxo/src/addons/mediapool/lib/mediapool.php).

The failure to thoroughly validate user-supplied filenames allows attackers to upload files containing arbitrary server-side scripting code, such as PHP, disguised with complex, multi-segment extensions. When deployed on web servers configured with permissive mime-type handlers or unanchored interpreter mappings (such as Apache modules using certain configurations), these files can be directly executed by navigating to the public asset URL. This execution leads to unauthenticated remote code execution on the host operating system under the context of the web server daemon user.

Root Cause Analysis

The vulnerability is categorized as a logical evaluation regression originating from a patch introduced in version 5.18.2 (specifically commit 9d008697dcec6bf5a972bdc081fadb68e9dab7fa). Previously, the application protected against double-extension attacks by verifying that a filename did not contain any blocked extensions anywhere within its structure using a broad substring check. While secure, this implementation generated false positives, blocking completely benign filenames such as example.json because the string contained the blocked extension .js followed immediately by the characters on.

To mitigate these false-positive blocks, developers refactored the validation block to perform two specific suffix checks. The modified logic checked whether the filename ended directly with a blocked extension, or if it ended with a blocked extension followed by the detected file extension (e.g., filename.php.jpg). This assumed that a filename structure would never exceed two segments following the initial delimiter. This assumption created a logical blind spot for any filename containing three or more extension segments.

When a filename like shell.php.any.jpg is uploaded, the core system parses the primary extension as jpg. The validation method then evaluates whether the string ends with .php (which is false) or whether the string ends with .php.jpg (which is also false). Because both logical checks return false, the validation routine concludes that the file is safe and permits the upload process to complete. This logical disconnect allows dangerous scripts containing internal .php markers to bypass the defensive block list entirely.

Code Analysis

To understand the mechanics of the bypass, it is necessary to examine the vulnerable source code from redaxo/src/addons/mediapool/lib/mediapool.php as it existed prior to the fix. The routine used standard suffix matching logic that failed when processing multi-segmented filenames:

// Vulnerable Code block from REDAXO 5.18.2 to 5.21.0
$blockedExtensions = self::getBlockedExtensions();
foreach ($blockedExtensions as $blockedExtension) {
    // Suffix-based checks to detect blocked extensions
    if (str_ends_with($filename, '.' . $blockedExtension)
        || str_ends_with($filename, '.' . $blockedExtension . '.' . $fileExt)
    ) {
        return false;
    }
}

The remediation introduced in commit 462e36896bb65d292ba22d711044c23c9cfb0340 replaces string-suffix matching with a strict tokenization-based strategy. Rather than evaluating the filename as a continuous string, the fixed code tokenizes the filename by splitting the string into an array of individual segments using the period character as the delimiter:

// Patched Code in REDAXO 5.21.1
$blockedExtensions = self::getBlockedExtensions();
// Convert to lowercase and split by dots to isolate all individual segments
foreach (explode('.', mb_strtolower($filename)) as $segment) {
    // Strict validation against the complete array of blocked extensions
    if (in_array($segment, $blockedExtensions, true)) {
        return false;
    }
}

This refactored logic successfully closes the multi-extension bypass vector. If an attacker uploads shell.php.any.jpg, the function converts the filename to lowercase and explodes it into the array ['shell', 'php', 'any', 'jpg']. The loop iterates over each element, matching the token php directly against the array of blocked extensions. The match causes in_array to return true, which immediately triggers a return of false, rejecting the upload.

Exploitation Methodology

Exploitation of CVE-2026-53599 requires the attacker to possess a low-privileged user account with permissions to upload assets to the REDAXO Mediapool (media[upload]). Once authenticated, the attacker prepares a web shell or remote execution payload. To bypass defensive controls that validate file headers or MIME types, the payload can be constructed as a valid image file, such as a JPEG/PHP polyglot, containing a small PHP execution block within its metadata headers.

The attacker renames the prepared polyglot file to use a multi-segment structure designed to evade the suffix validation checks. The target filename is set to exploit.php.any.jpg. Since this filename ends in .any.jpg, the suffix check passes, and the file is uploaded. The architecture of the exploitation flow can be represented as follows:

Once uploaded, the file is saved to the public-facing media/ directory. The success of the final execution stage relies on how the underlying web server processes files with multi-segment extensions. On Apache web servers employing the mod_mime module with configurations such as AddHandler application/x-httpd-php .php, the server processes extensions from right to left. Because .php is present as an internal segment of exploit.php.any.jpg, Apache treats the entire file as a PHP script and routes it to the PHP interpreter, executing the embedded web shell payload.

Impact Assessment

The security impact of CVE-2026-53599 is classified as High, receiving an official CVSS v3.1 base score of 7.5. The CVSS vector is defined as CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H. The complexity is rated high due to the dependency on the target environment's specific web server configuration (such as Apache multi-extension processing or AddHandler directives).

Upon successful exploitation, an attacker achieves arbitrary code execution within the context of the running web server daemon (e.g., www-data or apache). This access level allows the attacker to read, modify, or delete sensitive files, including the REDAXO database configuration file config.yml containing administrative credentials. Attackers can leverage this access to establish persistent backdoors, escalate privileges on the host operating system, or access internal network segments.

Currently, there is no evidence of active, automated exploitation campaigns in the wild, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. However, because functional proof-of-concept steps are publicly documented, the risk of target exploitation remains elevated for any REDAXO deployment operating on legacy or permissive Apache hosting platforms.

Remediation and Hardening

The primary remediation strategy for CVE-2026-53599 is upgrading the REDAXO installation to version 5.21.1 or higher. This release contains the updated segment-based parsing logic that prevents multi-extension validation bypasses. Administrators should review the update logs to confirm that the mediapool addon is properly updated along with the system core.

In environments where an immediate system upgrade is not feasible, server-level hardening can effectively neutralize the attack vector. Specifically, administrators must avoid utilizing the permissive AddHandler directive in Apache configurations, as it maps PHP processing to any file containing the .php substring. Instead, the PHP interpreter should be mapped using an end-anchored regular expression within a FilesMatch block:

# Hardened PHP handler mapping in Apache configuration
<FilesMatch ".+\.php$">
    SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

Additionally, ensuring that Options -Multiviews is set within the web server's directory options will prevent Apache from attempting to search for alternative file types when a specific file path is requested. Restricting write permissions on the media/ directory so that files cannot be executed as scripts is also a highly recommended defense-in-depth practice.

Fix Analysis (1)

Technical Appendix

CVSS Score
7.5/ 10
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H

Affected Systems

REDAXO Core (versions 5.18.2 to 5.21.0) with Mediapool addon installed

Affected Versions Detail

Product
Affected Versions
Fixed Version
REDAXO Core
REDAXO
>= 5.18.2, < 5.21.15.21.1
AttributeDetail
CWE IDCWE-434
Attack VectorNetwork (Authenticated)
CVSS v3.1 Score7.5 (High)
EPSS PercentileN/A (Newly registered)
ImpactArbitrary Remote Code Execution (RCE)
Exploit StatusProof-of-Concept (PoC) documented
CISA KEV StatusNot Listed

MITRE ATT&CK Mapping

T1059Command and Scripting Interpreter
Execution
T1105Ingress Tool Transfer
Command and Control
CWE-434
Unrestricted Upload of File with Dangerous Type

The software allows the attacker to upload or transfer files with dangerous types that can be executed in the product's environment.

Vulnerability Timeline

Regression introduced in commit 9d008697dcec6bf5a972bdc081fadb68e9dab7fa (v5.18.2)
2025-02-07
Vulnerability reported by security researcher @riodrwn
2026-06-01
Gregor Harlan commits security fix in PR #6538
2026-06-01
REDAXO version 5.21.1 released containing the patch
2026-06-01
Official CVE-2026-53599 and GHSA-98pp-vccm-qm25 advisories published
2026-07-31

References & Sources

  • [1]GitHub Security Advisory GHSA-98pp-vccm-qm25
  • [2]REDAXO Pull Request #6538
  • [3]Fix Commit: Tokenization-based validation
  • [4]Regression Commit: Suffix-based validation
  • [5]REDAXO 5.21.1 Release Details

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•12 minutes ago•CVE-2026-53466
6.5

CVE-2026-53466: Integer Conversion Overflow in ImageMagick XCF Decoder

An integer conversion overflow vulnerability exists in the XCF decoder of ImageMagick before version 6.9.13-51 and 7.1.2-26. The issue arises from mixed-type arithmetic that promotes calculation results to floating-point representations, causing an undefined cast back to integer. Under optimizing compilers, this undefined behavior results in bounds checks being bypassed, allowing out-of-bounds heap reads.

Amit Schendel
Amit Schendel
0 views•6 min read
•about 2 hours ago•CVE-2026-52887
10.0

CVE-2026-52887: Critical SQL Injection and Remote Code Execution in NocoBase

A critical SQL injection vulnerability exists in the @nocobase/plugin-notification-in-app-message plugin of NocoBase prior to version 2.0.61. The flaw is caused by direct string interpolation of user-controlled input into a Sequelize.literal() query, allowing authenticated users to execute stacked PostgreSQL queries and achieve remote code execution on the underlying database server.

Amit Schendel
Amit Schendel
3 views•7 min read
•about 3 hours ago•CVE-2026-53606
5.4

CVE-2026-53606: Stored Cross-Site Scripting (XSS) via Unsanitized URI-bearing Attributes in sanitize-html

An incomplete default configuration vulnerability in sanitize-html prior to version 2.17.5 allows remote attackers to execute arbitrary JavaScript code via crafted HTML payloads containing neglected URI-bearing attributes (e.g., action, formaction, data, xlink:href) that bypass input validation logic.

Alon Barad
Alon Barad
2 views•6 min read
•about 4 hours ago•CVE-2026-53609
9.1

CVE-2026-53609: Server-Side Prototype Pollution in ApostropheCMS

A critical server-side prototype pollution vulnerability in ApostropheCMS versions up to and including 4.30.0 allows authenticated editors to write arbitrary properties to the global Object.prototype via patch operators. Exploiting a confirmed gadget in publicApiCheck() bypasses authorization on all piece-type REST API endpoints framework-wide, persisting for the lifetime of the Node.js process.

Alon Barad
Alon Barad
2 views•6 min read
•about 5 hours ago•CVE-2026-53607
3.7

CVE-2026-53607: Server-Side Request Forgery in ApostropheCMS via Host Header Manipulation

An unauthenticated Server-Side Request Forgery (SSRF) vulnerability exists in ApostropheCMS versions up to and including 4.30.0. When the prettyUrls option is enabled in the @apostrophecms/file module, the server constructs internal self-requests using the client-provided HTTP Host header, allowing remote attackers to coerce the server into initiating outbound requests to arbitrary internal or external hosts.

Alon Barad
Alon Barad
3 views•8 min read
•about 6 hours ago•CVE-2026-53608
8.7

CVE-2026-53608: Stored Cross-Site Scripting in @apostrophecms/seo via Unsanitized Tracking IDs

A stored Cross-Site Scripting (XSS) vulnerability exists in the @apostrophecms/seo package of the ApostropheCMS ecosystem up to and including version 1.4.2. Unsanitized user inputs for Google Analytics and Google Tag Manager IDs are injected directly into script elements within the document header, enabling authenticated editors to execute arbitrary JavaScript in the context of all site visitors.

Alon Barad
Alon Barad
5 views•5 min read