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-63000

CVE-2026-63000: Cross-Site Request Forgery in REDAXO CMS Package Update API

Amit Schendel
Amit Schendel
Senior Security Researcher

Sep 23, 2026·6 min read·26 visits

Executive Summary (TL;DR)

Unprotected API handler allows attackers to force authenticated administrators to perform unauthorized package updates via CSRF.

A Cross-Site Request Forgery (CSRF) vulnerability in REDAXO CMS prior to version 5.21.2 allows unauthenticated remote attackers to trigger unauthorized package updates by exploiting an insecure default configuration in the base API class.

Vulnerability Overview

REDAXO is a modular, PHP-based content management system that relies on extensible addons. The core framework exposes a unified API routing mechanism to handle state-changing administrative operations, such as installation, removal, and modification of software packages. This centralized entry point is exposed via specific query parameters, making it a critical target for access control bypasses.

During a security audit of REDAXO versions preceding 5.21.2, researchers identified a structural flaw in the rex_api_install_package_update class. This class handles requests to update installed addons directly from the official package repository. Due to an architectural omission, the endpoint lacks validation for anti-CSRF (Cross-Site Request Forgery) tokens.

The security impact of this vulnerability is designated as CWE-352. An unauthenticated remote attacker can exploit this weakness by establishing a malicious site that forces a logged-in administrator's browser to execute requests against the vulnerability. This leads to silent package installations, application state modification, and potential service disruption without administrative consent.

Root Cause Analysis

The vulnerability stems from an insecure default-deny alternative, essentially an insecure opt-in model. In the REDAXO core architecture, API handlers are implemented as subclasses of the abstract base class rex_api_function. This base class governs core routing logic, access controls, and CSRF token verification.

Within the base class implementation of rex_api_function, the method requiresCsrfProtection() returns a boolean value of false by default. Under this design pattern, any new API endpoint created by developers is inherently unprotected against cross-origin state-changing attacks. To secure an endpoint, developers must explicitly override this method and return true within the subclass.

The endpoint responsible for updating packages, implemented in rex_api_install_package_update, omitted this override entirely. While sibling endpoints for package addition and deletion successfully implemented the override, the update handler inherited the insecure base default. Consequently, the core dispatcher bypasses token verification when processing update operations, leaving the endpoint fully exposed to CSRF vectors.

Code Analysis

Analysis of the source file api_package_update.php prior to the release of version 5.21.2 confirms the omission. The class definition extends rex_api_function but defines only the execution logic. There is no structural representation or local validation of anti-CSRF nonces within the class scope.

The vulnerable code path contains only the execute() method, which performs verification on parameters like the package ID and file identifier before executing the update loop. Here is the structural layout of the vulnerable handler:

// Pre-patch structure in redaxo/src/addons/install/lib/api/api_package_update.php
class rex_api_install_package_update extends rex_api_function
{
    public function execute()
    {
        // Verify and extract parameters
        // No local check for CSRF token exists here.
        return new rex_api_result($success, $message);
    }
    // The requiresCsrfProtection method is entirely missing
}

To address this structural gap, the patch introduces the required method override. The updated class now explicitly declares its dependency on CSRF protection, forcing the core routing controller to validate tokens prior to invoking the execute() routine. The patched implementation is shown below:

// Patched structure in redaxo/src/addons/install/lib/api/api_package_update.php
class rex_api_install_package_update extends rex_api_function
{
    public function execute()
    {
        // Execution of the package update logic
        return new rex_api_result($success, $message);
    }
 
    // Explicit override to enforce CSRF token validation
    protected function requiresCsrfProtection()
    {
        return true;
    }
}

This implementation is architecturally complete for this specific endpoint. However, the reliance on an opt-in inheritance model for CSRF protection represents a persistent risk for custom third-party addons developed under the same framework. Developers must manually verify that all custom state-changing API subclasses correctly override the default behavior.

Exploitation Methodology

Exploiting the vulnerability requires two primary prerequisites. First, the attacker must identify a target website running an unpatched version of REDAXO. Second, the attacker must target an active, authenticated administrator who is concurrently logged into the REDAXO control panel within the same browser session.

The attacker constructs a malicious payload delivered via an HTML document. This document contains an invisible, self-submitting form targeting the REDAXO endpoint. Alternatively, the attacker can use a cross-origin asynchronous request (fetch API) if cross-origin resource sharing (CORS) configurations are permissive or to execute standard POST requests that do not require reading the response.

The conceptual layout of the attack path illustrates how the request flows from the victim's browser to the CMS backend. By executing the cross-origin request, the browser attaches the existing administrative session cookies automatically, bypassing the need for credentials.

Once the victim browser submits the request, the target application accepts the payload as a legitimate request from the active administrator. The REDAXO server then contacts the configured package server, downloads the requested addon version, and overwrites existing backend files on the local disk. This can lead to system instability or denial of service if breaking changes are applied to critical components.

Impact Assessment

The CVSS v3.1 base score for this vulnerability is rated at 6.4 (Medium Severity). The vector breakdown indicates network-based access (AV:N) with high complexity (AC:H) because the attack depends entirely on successful social engineering of an active administrator. No privileges are required on the target application to initiate the vector, but user interaction (UI:R) is mandatory.

The primary impact resides within the integrity of the system (I:H). By forcing package updates, an attacker can modify source code within the active backend directory. If the administrator has configured a custom or compromised repository mirror, or if an attacker can manipulate dns resolution or exploit upstream vulnerabilities in the package registry, this execution flow could be elevated to complete remote code execution (RCE).

The availability impact is rated as low (A:L). An unsolicited update can introduce backward-incompatible code, alter database schemas, or deactivate essential plugins, resulting in partial application downtime or administrative lockouts. Confidentiality impact is also rated as low (C:L) as direct state exposure to the external attacker is limited unless the updated package itself leaks configuration data.

Remediation & Defense

The definitive remediation for CVE-2026-63000 is upgrading the REDAXO CMS installation to version 5.21.2 or higher. The release tag for this version was published on June 29, 2026, and incorporates the required class override. This patch successfully forces the system's router to validate the anti-CSRF token on every request targeting the update endpoint.

For deployments where an immediate version upgrade is not feasible, administrators can apply a manual hotfix. By editing the target class file at redaxo/src/addons/install/lib/api/api_package_update.php, developers can append the protected requiresCsrfProtection() method returning true. This hotfix matches the official commit patch exactly.

Security teams can detect vulnerable assets using signature-based tools or dynamic analysis. A custom Nuclei scanner can check the responsiveness of the endpoint without a token parameter. Additionally, the following Snort detection rule can identify potential exploitation attempts in transit over local network links:

alert tcp any any -> any 80 (msg:"REDAXO CMS Package Update CSRF Attempt"; content:"POST"; http_method; content:"rex-api-call=install_package_update"; http_client_body; sid:1000001; rev:1;)

Official Patches

redaxoOfficial patch fixing CSRF vulnerability in package update handler
redaxoCore PR addressing API package update CSRF

Fix Analysis (1)

Technical Appendix

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

Affected Systems

REDAXO CMS

Affected Versions Detail

Product
Affected Versions
Fixed Version
core
redaxo
< 5.21.25.21.2
AttributeDetail
CWE IDCWE-352
Attack VectorNetwork
CVSS6.4 (Medium)
EPSS StatusNone (recent 2026 listing)
ImpactIntegrity Modification, Unauthorized Package Deployment
Exploit StatusNone
KEV StatusNot Listed

MITRE ATT&CK Mapping

T1189Drive-by Compromise
Initial Access
CWE-352
Cross-Site Request Forgery (CSRF)

The web application does not sufficiently verify whether a request was intentionally initiated by the user who submitted it.

Vulnerability Timeline

Vulnerability patched by developer via commit a13abbffbad4fdea46a4edc86cdba3335ca9e8f3
2026-06-29
Official release of REDAXO CMS version 5.21.2 containing the security fix
2026-06-29
Vulnerability publicly disclosed under CVE-2026-63000 and GHSA-m8r3-22v6-g877
2026-09-23

References & Sources

  • [1]GitHub Security Advisory GHSA-m8r3-22v6-g877
  • [2]Fix Commit in REDAXO Repository
  • [3]GitHub Pull Request 6579
  • [4]REDAXO 5.21.2 Release Details
  • [5]CVE-2026-63000 Record on CVE.org
  • [6]NVD Vulnerability Details page

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

•about 3 hours ago•CVE-2026-9639
6.5

CVE-2026-9639: Authenticated Denial of Service via Nil-Pointer Dereference in Canonical LXD Custom Volume Backup Import

CVE-2026-9639 (GHSA-j93m-3j9p-m5m8) is a null pointer dereference vulnerability in Canonical LXD affecting versions 5.0.0 through 5.21.4 and 6.0 through 6.8. The flaw resides in the (*lxdBackend).CreateCustomVolumeFromBackup method within lxd/storage/backend_lxd.go. An authenticated attacker with the can_create_storage_volumes permission can upload a crafted custom volume backup tarball that omits the expires_at field on a snapshot entry, triggering an unhandled SIGSEGV panic and terminating the LXD daemon.

Amit Schendel
Amit Schendel
5 views•9 min read
•about 4 hours ago•CVE-2026-33050
8.8

CVE-2026-33050: OS Command Injection in GeoNode Vector Upload Handler

An operating system command injection vulnerability (CWE-78) exists in GeoNode versions prior to 5.1.0. The vulnerability occurs in the vector upload processing pipeline when handling user-supplied geospatial files. By supplying a crafted layer name containing shell metacharacters, an authenticated attacker with basic data upload privileges can execute arbitrary commands on the underlying server or container hosting the GeoNode application and Celery worker processes.

Alon Barad
Alon Barad
5 views•9 min read
•about 5 hours ago•CVE-2026-46429
5.5

CVE-2026-46429: Unrestricted File Upload and Validation Bypass in GeoNode

GeoNode versions prior to 5.0.3 contain an unrestricted file upload vulnerability (CWE-434) within the document and dataset ingestion architecture. Authenticated low-privileged users can bypass upload validation via direct REST API interactions, file extension masquerading, metadata mutation via PATCH requests, or malicious archive submissions. This allows attackers to store and serve dangerous file types, alter on-disk file references, or trigger path traversal and resource exhaustion during archive extraction.

Amit Schendel
Amit Schendel
6 views•10 min read
•about 6 hours ago•CVE-2026-55649
6.3

CVE-2026-55649: Stored Cross-Site Scripting in GeoNode Document Metadata Abstract Field

CVE-2026-55649 is a stored Cross-Site Scripting (XSS) vulnerability in GeoNode versions prior to 5.0.3. The flaw exists because document abstract metadata fields are ingested via the metadata management pipeline and stored in the backend database without HTML sanitization or input neutralization. An authenticated attacker with privileges to create or edit document metadata can inject arbitrary HTML and JavaScript payloads into these fields. When another user, such as an administrator, views the affected document page or catalog listing, the unencoded payload is rendered into the Document Object Model (DOM) and executes within the victim's browser session.

Amit Schendel
Amit Schendel
7 views•9 min read
•about 7 hours ago•GHSA-QX75-2P3R-PWM5
7.7

CVE-2026-55622: Cross-Project Instance Copy Authorization Bypass in Canonical LXD and LXC Incus

CVE-2026-55622 (GHSA-qx75-2p3r-pwm5) is an improper access control vulnerability (CWE-284) in Canonical LXD and LXC Incus (tracked as GHSA-c9f5-j9c3-mhrg). In multi-tenant deployments utilizing project-based isolation, the REST API handler for instance creation via POST /1.0/instances verifies that the authenticated user has authorization in the destination project specified by the query parameter, but fails to verify whether the user holds read or view permissions for the source instance when executing a copy operation across projects. Consequently, an authenticated client restricted to a single project can clone instances or snapshots from unauthorized projects into their own project, resulting in complete disclosure of the target instance filesystem and embedded credentials.

Amit Schendel
Amit Schendel
6 views•11 min read
•about 8 hours ago•GHSA-7MR3-28H5-M5VX
7.7

GHSA-7mr3-28h5-m5vx: Authorization Bypass and Cross-Project Volume Copy in Canonical LXD

An authorization bypass vulnerability in Canonical LXD (tracked as GHSA-7mr3-28h5-m5vx and CVE-2026-55621, and as GHSA-64f3-v33m-w89f in Linux Containers Incus) allows an authenticated user with restricted project access to copy custom storage volumes and volume snapshots from unauthorized projects. The flaw resides in the storagePoolVolumesPost REST API handler, which verifies permissions on the destination project but fails to check whether the caller holds view entitlements on the source project or volume specified in the request body.

Alon Barad
Alon Barad
5 views•10 min read