<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://vulnerability.circl.lu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-02T16:03:29.449767+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/fkie_cve-2026-63000</id>
    <title>fkie_cve-2026-63000</title>
    <updated>2026-10-02T16:03:29.712465+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>REDAXO is a PHP-based content management system. Prior to 5.21.2, rex_api_install_package_update in redaxo/src/addons/install/lib/api/api_package_update.php inherits the false default from rex_api_function::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.</p>
      </div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/fkie_cve-2026-63000"/>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/ghsa-m8r3-22v6-g877</id>
    <title>GHSA-m8r3-22v6-g877 — REDAXO: Missing CSRF Protection on Package Update Action Allows Forced Addon Updates</title>
    <updated>2026-10-02T16:03:29.712572+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Packagist: redaxo/source</p>
<p>### Summary
The `rex_api_install_package_update` API function (`install` addon) does not override `requiresCsrfProtection()`, which defaults to `false` in the base class `rex_api_function`. Any authenticated admin can therefore be tricked via a CSRF attack into silently triggering a package update from the REDAXO package server.</p>
<p>### Details
**File:** `redaxo/src/core/lib/api_function.php:277-280`
```php
protected function requiresCsrfProtection()
{
    return false;  // DEFAULT — subclasses must opt in
}
```</p>
<p>**File:** `redaxo/src/addons/install/lib/api/api_package_update.php:8-39`
```php
class rex_api_install_package_update extends rex_api_function
{
    public function execute()
    {
        if (!rex::getUser()?-&gt;isAdmin()) {
            throw new rex_api_exception('You do not have the permission!');
        }
        $addonkey = rex_request('addonkey', 'string');
        $fileId = rex_request('file', 'int');
        $installer = new rex_install_package_update();
        // ... downloads and installs $addonkey version $fileId from redaxo.org
    }
    // requiresCsrfProtection() NOT overridden — defaults to false
}
```</p>
<p>For comparison, `rex_api_install_package_add` and `rex_api_install_package_delete` both correctly return `true`. Only `rex_api_install_package_update` is missing this.</p>
<p>### PoC
```html
&lt;!-- Attacker-controlled page --&gt;
&lt;img src="https://victim-redaxo.example.com/index.php?page=install/packages&amp;rex-api-call=install_package_update&amp;addonkey=some_addon&amp;file=4…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/ghsa-m8r3-22v6-g877"/>
  </entry>
</feed>
