Headline
GHSA-x6vr-q3vf-vqgq: REDAXO CMS is vulnerable to Reflected XSS in Mediapool Info Banner via args[types]
Summary
A reflected Cross-Site Scripting (XSS) vulnerability exists in the Mediapool view where the request parameter args[types] is rendered into an info banner without HTML-escaping. This allows arbitrary JavaScript execution in the backend context when an authenticated user visits a crafted link while logged in.
Details
Control Flow:
redaxo/src/addons/mediapool/pages/index.phpreads args viarex_request('args', 'array')and passes them through as$argUrltomedia.list.php.redaxo/src/addons/mediapool/pages/media.list.phpinjects$argUrl['args']['types']into an HTML string without escaping:
if (!empty($argUrl['args']['types'])) {
echo rex_view::info(rex_i18n::msg('pool_file_filter') . ' <code>' . $argUrl['args']['types'] . '</code>');
}
PoC
- Log into the REDAXO backend.
- While authenticated, open a crafted URL like:
<host>/index.php?page=mediapool/media&args[types]="><img+src%3Dx+onerror%3Dalert%28document.domain%29> - The info banner displays the unescaped value and activates the injected onerror handler, which opens an alert pop-up.
Impact
Arbitrary JavaScript execution in the backend, enabling theft of session cookies, CSRF tokens, or other sensitive data, and allowing an attacker to perform any administrative actions on behalf of the affected user.
- GitHub Advisory Database
- GitHub Reviewed
- CVE-2025-66026
REDAXO CMS is vulnerable to Reflected XSS in Mediapool Info Banner via args[types]
Moderate severity GitHub Reviewed Published Nov 25, 2025 in redaxo/redaxo • Updated Nov 25, 2025
Package
composer redaxo/source (Composer)
Affected versions
< 5.20.1
Summary
A reflected Cross-Site Scripting (XSS) vulnerability exists in the Mediapool view where the request parameter args[types] is rendered into an info banner without HTML-escaping. This allows arbitrary JavaScript execution in the backend context when an authenticated user visits a crafted link while logged in.
Details
Control Flow:
redaxo/src/addons/mediapool/pages/index.php reads args via rex_request('args’, ‘array’) and passes them through as $argUrl to media.list.php.
redaxo/src/addons/mediapool/pages/media.list.php injects $argUrl[‘args’][‘types’] into an HTML string without escaping:
if (!empty($argUrl[‘args’][‘types’])) { echo rex_view::info(rex_i18n::msg(‘pool_file_filter’) . ' <code>’ . $argUrl[‘args’][‘types’] . ‘</code>’); }
PoC
- Log into the REDAXO backend.
- While authenticated, open a crafted URL like: <host>/index.php?page=mediapool/media&args[types]="><img+src%3Dx+onerror%3Dalert%28document.domain%29>
- The info banner displays the unescaped value and activates the injected onerror handler, which opens an alert pop-up.
Impact
Arbitrary JavaScript execution in the backend, enabling theft of session cookies, CSRF tokens, or other sensitive data, and allowing an attacker to perform any administrative actions on behalf of the affected user.
References
- GHSA-x6vr-q3vf-vqgq
- redaxo/redaxo@5892906
Published to the GitHub Advisory Database
Nov 25, 2025
Last updated
Nov 25, 2025