CVE-2026-63000: REDAXO: Missing CSRF Protection on Package Update Action Allows Forced Addon Updates

Published Sep 23, 2026
·
Updated

Summary The rexapiinstallpackageupdate API function (install addon) does not override requiresCsrfProtection(), which defaults to false in the base class rexapifunction. Any authenticated admin can therefore be tricked via a CSRF attack into silently triggering a package update from the REDAXO package server.

Details File: redaxo/src/core/lib/apifunction.php:277-280 php protected function requiresCsrfProtection() { return false; // DEFAULT — subclasses must opt in }

File: redaxo/src/addons/install/lib/api/apipackageupdate.php:8-39 php class rexapiinstallpackageupdate extends rexapifunction { public function execute() { if (!rex::getUser()?->isAdmin()) { throw new rexapiexception('You do not have the permission!'); } $addonkey = rexrequest('addonkey', 'string'); $fileId = rexrequest('file', 'int'); $installer = new rexinstallpackageupdate(); // ... downloads and installs $addonkey version $fileId from redaxo.org } // requiresCsrfProtection() NOT overridden — defaults to false }

For comparison, rexapiinstallpackageadd and rexapiinstallpackagedelete both correctly return true. Only rexapiinstallpackageupdate is missing this.

PoC html <!-- Attacker-controlled page --> <img src="https://victim-redaxo.example.com/index.php?page=install/packages&rex-api-call=installpackageupdate&addonkey=someaddon&file=42" /> When an authenticated admin visits this page, the request is automatically made with their session cookie, causing someaddon to be updated to version fileid=42.

Impact An attacker who can lure an admin to a malicious page can force-install specific addon versions. If combined with a supply-chain compromise of a package on redaxo.org, or by targeting a downgrade to a known-vulnerable version, this becomes a remote code execution vector. Even without supply-chain compromise, it can be used to disrupt the site by forcing unwanted updates.

Fix Add requiresCsrfProtection() to rexapiinstallpackageupdate: php protected function requiresCsrfProtection() { return true; }

Other sources

REDAXO is a PHP-based content management system. Prior to 5.21.2, rexapiinstallpackageupdate in redaxo/src/addons/install/lib/api/apipackageupdate.php inherits the false default from rexapifunction::requiresCsrfProtection() instead of requiring a CSRF token. An unauthenticated attacker can cause a logged-in administrator's browser to request a selected package update from the configured REDAXO package server, changing installed addon code or disrupting the site without the administrator's intent. This issue is fixed in version 5.21.2.

MITRE

Affected Software

1 affected componentFixes available
composer/redaxo/source<=5.21.1
5.21.2

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade composer/redaxo/source to a version that resolves this vulnerability.

    Fixed in 5.21.2
  2. Upgrade

    Upgrade REDAXO to a version that resolves this vulnerability.

    Fixed in 5.21.2

Event History

Sep 23, 2026
CVE Published
via MITRE·02:08 PM
Data Sourced
via MITRE·02:08 PM
DescriptionSeverityWeakness
Advisory Published
via GitHub·02:09 PM
Data Sourced
via GitHub·02:09 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

Who can be targeted by this issue?

An authenticated REDAXO administrator can be targeted. The attacker must cause that administrator to interact with a CSRF payload; no attacker account or administrative permission is required.

2

What action can a successful attack trigger?

It can silently invoke the package-update API and cause REDAXO to download and install a selected add-on version from the REDAXO package server. The affected operation is package update, not package addition or deletion.

3

How can I determine whether my installation is affected?

Inspect rex_api_install_package_update in the install add-on. It is affected if the class does not override requiresCsrfProtection() to return true, because the inherited base-class default returns false.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203