<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Fri, 02 Oct 2026 16:03:29 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-63000</title>
      <link>https://vulnerability.circl.lu/vuln/fkie_cve-2026-63000</link>
      <description>&lt;p&gt;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&amp;#39;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&amp;#39;s intent. This issue is fixed in version 5.21.2.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;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&amp;#39;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&amp;#39;s intent. This issue is fixed in version 5.21.2.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/fkie_cve-2026-63000</guid>
    </item>
    <item>
      <title>GHSA-m8r3-22v6-g877 — REDAXO: Missing CSRF Protection on Package Update Action Allows Forced Addon Updates</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-m8r3-22v6-g877</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Packagist: redaxo/source&lt;/p&gt;
&lt;p&gt;### 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.&lt;/p&gt;
&lt;p&gt;### Details
**File:** `redaxo/src/core/lib/api_function.php:277-280`
```php
protected function requiresCsrfProtection()
{
    return false;  // DEFAULT — subclasses must opt in
}
```&lt;/p&gt;
&lt;p&gt;**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()?-&amp;gt;isAdmin()) {
            throw new rex_api_exception(&amp;#39;You do not have the permission!&amp;#39;);
        }
        $addonkey = rex_request(&amp;#39;addonkey&amp;#39;, &amp;#39;string&amp;#39;);
        $fileId = rex_request(&amp;#39;file&amp;#39;, &amp;#39;int&amp;#39;);
        $installer = new rex_install_package_update();
        // ... downloads and installs $addonkey version $fileId from redaxo.org
    }
    // requiresCsrfProtection() NOT overridden — defaults to false
}
```&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;### PoC
```html
&amp;lt;!-- Attacker-controlled page --&amp;gt;
&amp;lt;img src=&amp;#34;https://victim-redaxo.example.com/index.php?page=install/packages&amp;amp;rex-api-call=install_package_update&amp;amp;addonkey=some_addon&amp;amp;file=4…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Packagist: redaxo/source&lt;/p&gt;
&lt;p&gt;### 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.&lt;/p&gt;
&lt;p&gt;### Details
**File:** `redaxo/src/core/lib/api_function.php:277-280`
```php
protected function requiresCsrfProtection()
{
    return false;  // DEFAULT — subclasses must opt in
}
```&lt;/p&gt;
&lt;p&gt;**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()?-&amp;gt;isAdmin()) {
            throw new rex_api_exception(&amp;#39;You do not have the permission!&amp;#39;);
        }
        $addonkey = rex_request(&amp;#39;addonkey&amp;#39;, &amp;#39;string&amp;#39;);
        $fileId = rex_request(&amp;#39;file&amp;#39;, &amp;#39;int&amp;#39;);
        $installer = new rex_install_package_update();
        // ... downloads and installs $addonkey version $fileId from redaxo.org
    }
    // requiresCsrfProtection() NOT overridden — defaults to false
}
```&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;### PoC
```html
&amp;lt;!-- Attacker-controlled page --&amp;gt;
&amp;lt;img src=&amp;#34;https://victim-redaxo.example.com/index.php?page=install/packages&amp;amp;rex-api-call=install_package_update&amp;amp;addonkey=some_addon&amp;amp;file=4…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-m8r3-22v6-g877</guid>
    </item>
  </channel>
</rss>
