<?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-01T16:28:53.443281+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-63002</id>
    <title>fkie_cve-2026-63002</title>
    <updated>2026-10-01T16:28:53.469799+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, redaxo/src/addons/mediapool/pages/sync.php inserts filenames held in $diffFiles from the media filesystem into the Mediapool Sync page without rex_escape(). An attacker who can place an unregistered file with HTML metacharacters in the media directory can execute script in the browser of a backend user with media[sync] permission when that user opens the Sync page, enabling session theft or unauthorized backend actions. This issue is fixed in version 5.21.2.</p>
      </div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/fkie_cve-2026-63002"/>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/ghsa-w998-qmw9-mf4m</id>
    <title>GHSA-w998-qmw9-mf4m — REDAXO: Stored XSS in Mediapool Sync Page via Unescaped Filesystem Filenames</title>
    <updated>2026-10-01T16:28:53.469951+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 mediapool sync page (`sync.php`) renders filenames from the `/media` filesystem directory directly into HTML without applying `rex_escape()` (i.e., `htmlspecialchars`). Any file placed in the media directory whose filename contains HTML metacharacters will execute JavaScript in the browser of any backend user who views the sync page.</p>
<p>### Details
In `redaxo/src/addons/mediapool/pages/sync.php`, the variable `$diffFiles` is populated from actual filesystem filenames (files in `/media/` not yet registered in the database). These filenames are then rendered without escaping:</p>
<p>**File:** `redaxo/src/addons/mediapool/pages/sync.php:119-120`
```php
foreach ($diffFiles as $file) {
    if (is_writable(rex_path::media($file))) {
        $e = [];
        $e['label'] = '&lt;label&gt;' . $file . '&lt;/label&gt;';          // NO rex_escape!
        $e['field'] = '&lt;input type="checkbox" name="sync_files[]" value="' . $file . '" /&gt;'; // NO rex_escape!
        $writable[] = $e;
    } else {
        $notWritable[] = $file;
    }
}
```</p>
<p>**File:** `redaxo/src/addons/mediapool/pages/sync.php:170`
```php
$fragment-&gt;setVar('body', '&lt;ul&gt;&lt;li&gt;' . implode('&lt;/li&gt;&lt;li&gt;', $notWritable) . '&lt;/li&gt;&lt;/ul&gt;', false);
// $notWritable contains unescaped filenames
```</p>
<p>By contrast, all other filename displays in the codebase use `rex_escape($fname)` (e.g., `media.detail.php:236`, `media.list.php`). The sync page is accessible to any backend user with the `media[sync]` permission (not exclusively admins).</p>
<p>### Po…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/ghsa-w998-qmw9-mf4m"/>
  </entry>
</feed>
