<?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://cve.radiocsirt.org/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-14T18:33:08.568646+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>csirt@opendfir.org</email>
  </author>
  <link href="https://cve.radiocsirt.org" 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://cve.radiocsirt.org/vuln/euvd-2026-338836</id>
    <title>EUVD-2026-338836</title>
    <updated>2026-10-14T18:33:08.614842+00:00</updated>
    <content>EUVD-2026-338836</content>
    <link href="https://cve.radiocsirt.org/vuln/euvd-2026-338836"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/fkie_cve-2026-45138</id>
    <title>fkie_cve-2026-45138</title>
    <updated>2026-10-14T18:33:08.614879+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>CI4MS is a CodeIgniter 4-based content management system skeleton. Prior to version 0.31.9.0, the custom `html_purify` validation rule used to sanitize blog post bodies relies on by-reference mutation (`?string &amp;$str`), but CodeIgniter 4's validator passes a local copy of the value, so the sanitized text is silently discarded. The Blog controller writes `$lanData['content']` directly into `blog_langs.content`, and the public template echoes it without escaping — yielding stored XSS executable in any visitor's browser, including the superadmin when previewing or editing posts. Version 0.31.9.0 patches the issue.</p>
      </div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/fkie_cve-2026-45138"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/ghsa-2m69-jmvh-6chr</id>
    <title>GHSA-2m69-jmvh-6chr — CI4MS: Stored XSS in Blog Content via Broken `html_purify` Validation Rule</title>
    <updated>2026-10-14T18:33:08.614918+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Packagist: ci4-cms-erp/ci4ms</p>
<p>## Summary</p>
<p>The custom `html_purify` validation rule used to sanitize blog post bodies relies on by-reference mutation (`?string &amp;$str`), but CodeIgniter 4's validator passes a local copy of the value, so the sanitized text is silently discarded. The Blog controller writes `$lanData['content']` directly into `blog_langs.content`, and the public template echoes it without escaping — yielding stored XSS executable in any visitor's browser, including the superadmin when previewing or editing posts.</p>
<p>## Details</p>
<p>### Root cause: by-reference mutation never propagates</p>
<p>`Modules\Backend\Validation\CustomRules::html_purify` declares its first argument by reference:</p>
<p>```php
// modules/Backend/Validation/CustomRules.php:54-73
public function html_purify(?string &amp;$str = null, ?string &amp;$error = null): bool
{
    if (empty(trim((string)$str))) return true;
    if (!class_exists('\HTMLPurifier')) { $error = lang('Backend.htmlPurifierNotFound'); return false; }
    $clean = self::sanitizeHtml($str);
    $str   = $clean;                                  // &lt;-- mutates only the local $value in CI4's validator
    self::$cleanCache[md5((string)$str)] = $clean;    // &lt;-- key is md5(CLEAN), getClean() looks up md5(ORIGINAL)
    return true;
}
```</p>
<p>CI4's validator invokes the rule via a local variable `$value` it created from a copy of `$this-&gt;data`:</p>
<p>```php
// vendor/codeigniter4/framework/system/Validation/Validation.php:204-211
foreach ($values as $dotField =&gt; $value) {…</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/ghsa-2m69-jmvh-6chr"/>
  </entry>
</feed>
