CVE-2026-39394 CI4MS has an .env CRLF Injection via Unvalidated `host` Parameter in Install Controller

High 8.1 Published Updated

Attackers can inject arbitrary configuration directives into the .env file via the install controller, potentially leading to code execution or security bypasses.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2026-39394?

CVE-2026-39394 is a high-severity vulnerability in ci4-cms-erp ci4ms, published on 8 Apr 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official 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.

Weakness: CWE-93

Which versions are affected by CVE-2026-39394?

2 open source packages ship an affected version, including ci4-cms-erp/ci4ms. It affects 1 product.

PackageAffectedFixed in
ci4-cms-erp/ci4ms PackagistAll versions0.31.4.0
ci4-cms-erp/ci4ms PackagistAll versions0.31.4.0

Products include Ci4-Cms-Erp Ci4ms.

How do I fix CVE-2026-39394?

Upgrade ci4-cms-erp/ci4ms to 0.31.4.0 or later.

Is CVE-2026-39394 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-39394 exists.

Sources

Also known as GHSA-vfhx-5459-qhqh.

Is CVE-2026-39394 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free