codeigniter4/framework security advisory
CVE-2026-63223: CodeIgniter: Uploaded file extension validation bypass in is_image and mime_in rules
CVE-2026-63223 is a critical-severity arbitrary file upload vulnerability in the PHP package codeigniter4/framework (CVSS 9.8), published 31 July 2026. It is fixed in 4.7.4; earlier versions are affected. It can be exploited without an account.
critical 9.8 published 2026-07-31 · updated 2026-09-08
- Affected versions
- < 4.7.4
- Fixed in
- 4.7.4
- Newest release
- 4.7.6
- Severity
- Critical · CVSS 9.8
- Type
- Arbitrary file upload
CWE-434 - Exploited in the wild
- Not on the CISA KEV list
checked 2026-11-04
Is your codeigniter4/framework version affected?
Who can exploit CVE-2026-63223
- Access: No account. Anyone who can send a request to an app that uses the affected code.
CVSS vector (scored by GitHub): CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
How to fix CVE-2026-63223 in codeigniter4/framework
- Find the installed version:
composer show codeigniter4/framework. If you never required it yourself,composer why codeigniter4/frameworkshows which package pulls it in. - Update it:
composer update codeigniter4/framework --with-all-dependencies. You need 4.7.4 or newer. - If Composer will not go that high, your composer.json constraint is holding it back. Widen it (for example
"codeigniter4/framework": "^4.7.4"if you can take that version), or upgrade the package that requires it. - Run
composer audit. It reads the same advisory data and should no longer list CVE-2026-63223. - Commit composer.lock and deploy it. On the server, run
composer install --no-devfrom the lock file, notcomposer update.
If you cannot upgrade yet
- Rename uploaded files on the server instead of keeping the name the user sent, and allow only the extensions you expect.
- Store uploads outside the web root, or turn off PHP execution in the upload folder.
- If your app does not use the affected feature, note that in your audit, but still plan the upgrade.
The CVE-2026-63223 advisory
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.
References
- GitHub advisory GHSA-mmj4-63m4-r6h5 github.com
- Fix commit b6e9a4f github.com
- Release v4.7.4 github.com
Other codeigniter4/framework advisories
- high CVE-2026-63222: CodeIgniter: Path traversal in UploadedFile::move() when using client-provided filenames 2026-08-07
- critical CVE-2026-63221: CodeIgniter: SQL injection in Query Builder deleteBatch() when used with where() conditions 2026-08-07
- medium CVE-2026-63220: CodeIgniter: Spoofable forwarded HTTPS headers in IncomingRequest::isSecure() 2026-08-07
- critical CVE-2026-48062: CodeIgniter4 has a validation bypass when uploading file extensions via ext_in rule 2026-06-11
- critical CVE-2025-54418: CodeIgniter4's ImageMagick Handler has Command Injection Vulnerability 2025-07-28
- medium CVE-2025-24013: Missing validation of header name and value in codeigniter4/framework 2025-01-21
Related
Need help patching or upgrading? Laskyr does PHP and Laravel security fixes and upgrades. Tell us what you run and we reply with a plan and a price.
Ask about a fixWhere this data comes from
- Affected and fixed versions: the Packagist security advisories API (GitHub Advisory Database and FriendsOfPHP), the same data
composer audituses. Synced 2026-11-03. - Description, score, weakness and references: NIST National Vulnerability Database (NVD), checked 2026-11-04. This product uses data from the NVD API but is not endorsed or certified by the NVD.
- Exploited-in-the-wild status: the CISA Known Exploited Vulnerabilities catalog, checked 2026-11-04.
- Compiled by Daniel Lasek at Laskyr from the sources above. The summary, “who can exploit it”, “how to fix it” and hardening sections are our plain-English reading of the record and are generated from it. The quoted description is the record's own text. Spot an error? Tell us.