<?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://cve.radiocsirt.org</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>Wed, 07 Oct 2026 05:10:46 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-281276</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-281276</link>
      <description>EUVD-2026-281276</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-281276</guid>
    </item>
    <item>
      <title>fkie_cve-2026-39394</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-39394</link>
      <description>&lt;p&gt;CI4MS is a CodeIgniter 4-based CMS skeleton that delivers a production-ready, modular architecture with RBAC authorization and theme support. Prior to 0.31.4.0, the Install::index() controller reads the host POST parameter without any validation and passes it directly into updateEnvSettings(), which writes it into the .env file via preg_replace(). Because newline characters in the value are not stripped, an attacker can inject arbitrary configuration directives into the .env file. The install routes have CSRF protection explicitly disabled, and the InstallFilter can be bypassed when cache(&amp;#39;settings&amp;#39;) is empty (cache expiry or fresh deployment). This vulnerability is fixed in 0.31.4.0.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;CI4MS is a CodeIgniter 4-based CMS skeleton that delivers a production-ready, modular architecture with RBAC authorization and theme support. Prior to 0.31.4.0, the Install::index() controller reads the host POST parameter without any validation and passes it directly into updateEnvSettings(), which writes it into the .env file via preg_replace(). Because newline characters in the value are not stripped, an attacker can inject arbitrary configuration directives into the .env file. The install routes have CSRF protection explicitly disabled, and the InstallFilter can be bypassed when cache(&amp;#39;settings&amp;#39;) is empty (cache expiry or fresh deployment). This vulnerability is fixed in 0.31.4.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-39394</guid>
    </item>
    <item>
      <title>GHSA-vfhx-5459-qhqh — CI4MS Vulnerable to .env CRLF Injection via Unvalidated `host` Parameter in Install Controller</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-vfhx-5459-qhqh</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Packagist: ci4-cms-erp/ci4ms&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;The `Install::index()` controller reads the `host` POST parameter without any validation and passes it directly into `updateEnvSettings()`, which writes it into the `.env` file via `preg_replace()`. Because newline characters in the value are not stripped, an attacker can inject arbitrary configuration directives into the `.env` file. The install routes have CSRF protection explicitly disabled, and the `InstallFilter` can be bypassed when `cache(&amp;#39;settings&amp;#39;)` is empty (cache expiry or fresh deployment).&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;In `modules/Install/Controllers/Install.php`, the `$valData` array (lines 13-27) defines validation rules for all POST parameters **except** `host`. The `host` value is read at line 35:&lt;/p&gt;
&lt;p&gt;```php
// line 32-41
$updates = [
    &amp;#39;CI_ENVIRONMENT&amp;#39; =&amp;gt; &amp;#39;development&amp;#39;,
    &amp;#39;app.baseURL&amp;#39; =&amp;gt; &amp;#39;\&amp;#39;&amp;#39; . $this-&amp;gt;request-&amp;gt;getPost(&amp;#39;baseUrl&amp;#39;) . &amp;#39;\&amp;#39;&amp;#39;,
    &amp;#39;database.default.hostname&amp;#39; =&amp;gt; $this-&amp;gt;request-&amp;gt;getPost(&amp;#39;host&amp;#39;),  // NO VALIDATION
    &amp;#39;database.default.database&amp;#39; =&amp;gt; $this-&amp;gt;request-&amp;gt;getPost(&amp;#39;dbname&amp;#39;),
    // ...
];
```&lt;/p&gt;
&lt;p&gt;This value is passed to `updateEnvSettings()` (lines 89-101), which uses `preg_replace` with the raw value as the replacement string:&lt;/p&gt;
&lt;p&gt;```php
// line 94-98
foreach ($updates as $key =&amp;gt; $value) {
    $pattern = &amp;#39;/^&amp;#39; . preg_quote($key, &amp;#39;/&amp;#39;) . &amp;#39;=.*/m&amp;#39;;
    $replacement = &amp;#34;{$key}={$value}&amp;#34;;
    if (preg_match($pattern, $contents)) $contents = preg_replace($pattern, $replacement, $contents);
    else $contents .= PHP_EOL . $replacement;
}
```&lt;/p&gt;
&lt;p&gt;Since the `env` t…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Packagist: ci4-cms-erp/ci4ms&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;The `Install::index()` controller reads the `host` POST parameter without any validation and passes it directly into `updateEnvSettings()`, which writes it into the `.env` file via `preg_replace()`. Because newline characters in the value are not stripped, an attacker can inject arbitrary configuration directives into the `.env` file. The install routes have CSRF protection explicitly disabled, and the `InstallFilter` can be bypassed when `cache(&amp;#39;settings&amp;#39;)` is empty (cache expiry or fresh deployment).&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;In `modules/Install/Controllers/Install.php`, the `$valData` array (lines 13-27) defines validation rules for all POST parameters **except** `host`. The `host` value is read at line 35:&lt;/p&gt;
&lt;p&gt;```php
// line 32-41
$updates = [
    &amp;#39;CI_ENVIRONMENT&amp;#39; =&amp;gt; &amp;#39;development&amp;#39;,
    &amp;#39;app.baseURL&amp;#39; =&amp;gt; &amp;#39;\&amp;#39;&amp;#39; . $this-&amp;gt;request-&amp;gt;getPost(&amp;#39;baseUrl&amp;#39;) . &amp;#39;\&amp;#39;&amp;#39;,
    &amp;#39;database.default.hostname&amp;#39; =&amp;gt; $this-&amp;gt;request-&amp;gt;getPost(&amp;#39;host&amp;#39;),  // NO VALIDATION
    &amp;#39;database.default.database&amp;#39; =&amp;gt; $this-&amp;gt;request-&amp;gt;getPost(&amp;#39;dbname&amp;#39;),
    // ...
];
```&lt;/p&gt;
&lt;p&gt;This value is passed to `updateEnvSettings()` (lines 89-101), which uses `preg_replace` with the raw value as the replacement string:&lt;/p&gt;
&lt;p&gt;```php
// line 94-98
foreach ($updates as $key =&amp;gt; $value) {
    $pattern = &amp;#39;/^&amp;#39; . preg_quote($key, &amp;#39;/&amp;#39;) . &amp;#39;=.*/m&amp;#39;;
    $replacement = &amp;#34;{$key}={$value}&amp;#34;;
    if (preg_match($pattern, $contents)) $contents = preg_replace($pattern, $replacement, $contents);
    else $contents .= PHP_EOL . $replacement;
}
```&lt;/p&gt;
&lt;p&gt;Since the `env` t…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-vfhx-5459-qhqh</guid>
    </item>
  </channel>
</rss>
