CVE-2026-39394: ci4-cms-erp ci4ms · CRLF Injection
Affects ci4-cms-erp ci4msSource CVE Database V5
Not known to be exploited · CVSS 8.1 High : upgrade to 0.31.4.0 soon.
Data as of 26 Oct 2026, 10:12 UTC
- EPSS
- 0.5% chance of exploitation in 30 days – higher than 43% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 0.31.4.0
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:HExploitation evidence
Disclosed: evidence found.
CVE published 8 Apr 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponised: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.
What to do
Upgrade ci4ms and ci4-cms-erp/ci4ms to 0.31.4.0.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| ci4-cms-erpci4ms | Affected
| Fixed in
|
GitHubci4-cms-erp/ci4mspkg:github/ci4-cms-erp/ci4msOther threats | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
This vulnerability is fixed in ci4ms version 0.31.4.0. Users should upgrade to version 0.31.4.0 or later to remediate this issue. Until upgraded, restrict access to the install routes and ensure cache settings do not allow bypassing the InstallFilter. Patch status is not explicitly stated beyond the fix in version 0.31.4.0, so verify with vendor advisories for the latest remediation guidance.
Description
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('settings') is empty (cache expiry or fresh deployment). This vulnerability is fixed in 0.31.4.0.