GHSA-2gr4-ppc7-7mhx · Severity: critical · Ecosystem: composer — CodeIgniter4 has a validation bypass when uploading file extensions via `ext_in` rule
CodeIgniter is a PHP full-stack web framework. Prior to 4.7.3, the ext_in upload validation rule in system/Validation/StrictRules/FileRules.php checked the MIME-derived guessed extension instead of the client-provided filename extension. As a result, an uploaded file named shell.php containing GIF-like content could pass validation such as uploaded[avatar]|is_image[avatar]|mime_in[avatar,image/gif]|ext_in[avatar,gif] because the detected MIME type maps to gif, even though the uploaded filename extension is php. Applications are impacted if they accept user-controlled uploads, rely on ext_in to validate the uploaded filename extension, save uploaded files using the original client filename with $file->move($path), store uploads in a web-accessible directory, and allow PHP or other executable files to run from that directory. In those conditions, this may lead to arbitrary code execution. This issue is fixed in version 4.7.3.
Conclusion & alert: CVE-2026-48062 is rated Moderate Risk (52.1/100): CVSS Critical severity, with low exploitation likelihood (EPSS 0.44%). Mandatory action: Review affected assets and schedule remediation.
Risk is dynamic; we continuously reassess and refresh what is shown on this page as upstream context changes.
EPSS lead: Daily EPSS estimates relative likelihood of exploitation; percentile ranks this CVE among scored vulnerabilities (higher = more severe relative rank).
| # | Date | Old EPSS score | New EPSS score | Delta (New - Old) |
|---|---|---|---|---|
| 1 | 2026-07-18 | 0.08% | 0.44% | +0.37% |
| 2 | 2026-06-12 | — | 0.08% | — |
Full EPSS history (2 records total)
CVSS metrics for this CVE.
| Base score | Version | Severity | Vector | Exploitability | Impact | Score source |
|---|---|---|---|---|---|---|
| 9.8 | 3.1 | CRITICAL |
|
3.9 | 5.9 | [email protected] |
GHSA-2gr4-ppc7-7mhx · Severity: critical · Ecosystem: composer — CodeIgniter4 has a validation bypass when uploading file extensions via `ext_in` rule
| Vendor | Product | Version | Raw CPE |
|---|---|---|---|
| No affected products in dataset. | |||