Description
CodeIgniter is a PHP full-stack web framework. Prior to 4.7.4, the is_image and mime_in upload validation rules do not independently enforce a safe client filename extension, allowing a remote attacker to upload executable content when an application preserves the client filename and stores uploads in a web-accessible script-enabled directory. Applications are impacted when they validate uploads using is_image or mime_in without an independent safe extension check (such as ext_in on patched versions), save uploaded files using the client-supplied filename, and place uploads in a web-accessible directory where PHP files can execute. This issue is fixed in version 4.7.4.
Published: 2026-07-31
Score: 9.8 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The reported flaw pertains to CodeIgniter4's file upload validation logic. The is_image and mime_in rules previously omitted verification of the client‑supplied filename’s extension, which meant that an attacker could schedule the upload of a file with an executable payload, such as PHP code, while the upload process accepted the file based on MIME type or image checks alone. This omission is defined as CWE-434. If the application subsequently stores the file using the original filename in a web‑accessible directory that permits execution, an adversary gains remote code execution capability. The issue is fixed in CodeIgniter4 version 4.7.4.

Affected Systems

Affected applications are those built on CodeIgniter4 releases earlier than version 4.7.4, which validate uploads with is_image or mime_in without an additional safe‑extension check and preserve the client filename. The vulnerability forces reliance on the upload directory’s security posture; any web‑accessible location that allows script execution is a valid target. If the directory is not script‑enabled, the risk is mitigated but the flaw still exists and could lead to denial of service or data disclosure by serving malicious files.

Risk and Exploitability

The exploitability of this issue is high. Based on the description, it is inferred that the attacker can exploit the vulnerability via a publicly exposed file upload endpoint that uses the is_image or mime_in validation rules, submitting a payload with a dangerous file extension. The CVSS score of 9.8 indicates critical severity, and the EPSS score of < 1% suggests a low probability of exploitation in the wild, but the lack of exploitation evidence does not diminish the risk for exposed systems. This issue is not listed in CISA KEV. An attacker does not need authentication; once the file is uploaded to a web‑accessible directory that permits execution, the server will execute the malicious code. The flaw was fixed in CodeIgniter4 v4.7.4.

Generated by OpenCVE AI on August 2, 2026 at 04:36 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to CodeIgniter4 version 4.7.4 or newer.
  • If upgrade is not possible, add an explicit safe‑extension rule such as ext_in to validate the client filename before saving the file.
  • Store uploaded files outside the web root or configure the upload directory to disallow execution of scripts, and avoid using the client‑supplied filename for storage.

Generated by OpenCVE AI on August 2, 2026 at 04:36 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-mmj4-63m4-r6h5 CodeIgniter: Uploaded file extension validation bypass in `is_image` and `mime_in` rules
History

Sun, 02 Aug 2026 19:45:00 +0000

Type Values Removed Values Added
First Time appeared Codeigniter
Codeigniter codeigniter
Vendors & Products Codeigniter
Codeigniter codeigniter

Sat, 01 Aug 2026 00:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Fri, 31 Jul 2026 05:30:00 +0000

Type Values Removed Values Added
Description CodeIgniter is a PHP full-stack web framework. Prior to 4.7.4, the is_image and mime_in upload validation rules do not independently enforce a safe client filename extension, allowing a remote attacker to upload executable content when an application preserves the client filename and stores uploads in a web-accessible script-enabled directory. Applications are impacted when they validate uploads using is_image or mime_in without an independent safe extension check (such as ext_in on patched versions), save uploaded files using the client-supplied filename, and place uploads in a web-accessible directory where PHP files can execute. This issue is fixed in version 4.7.4.
Title CodeIgniter: Uploaded file extension validation bypass in is_image and mime_in rules
Weaknesses CWE-434
References
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}


Subscriptions

Codeigniter Codeigniter
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-31T23:16:24.574Z

Reserved: 2026-07-15T22:19:06.907Z

Link: CVE-2026-63223

cve-icon Vulnrichment

Updated: 2026-07-31T23:16:20.404Z

cve-icon NVD

Status : Received

Published: 2026-07-31T06:16:32.297

Modified: 2026-08-01T00:17:17.750

Link: CVE-2026-63223

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-02T19:30:17Z

Weaknesses
  • CWE-434

    Unrestricted Upload of File with Dangerous Type