CVE-2026-63222 json
CodeIgniter: Path traversal in UploadedFile::move() when using client-provided filenames
published 2026-07-31 3 mo ago modified 2026-09-08 2 mo ago also EUVD-2026-51398 , GHSA-hhmc-q9hp-r662
- cvss
- 7.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.6%
- EPSS 0.6% chance of exploitation in 30 days, percentile 50%
- public exploits
- 0
- none known
Summary
CodeIgniter is a PHP full-stack web framework. Prior to 4.7.4, calling UploadedFile::move() without a second argument uses the client-provided filename without sanitization, allowing a remote attacker to use path traversal sequences to write uploaded content outside the intended directory when the application exposes an upload path. This issue is fixed in version 4.7.4.
Patch / fix
- packagist codeigniter4/framework 4.7.4
- codeigniter codeigniter 4.7.4
CISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 3 mo ago
Exploit prediction
0.64% chance of exploitation in the next 30 days, higher than 50% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| GitHub | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| packagist | codeigniter4/framework | <4.7.4 |
4.7.4 |
Affected products
- codeigniter4 CodeIgniter4
Classification
- Weakness
-
- CWE-22 Improper Limitation of a Pathname to a Restricted Directory
References
-
github.com
/codeigniter4/CodeIgniter4/commit/20ebcf4694d96d3c97fbc3938e360730e4f54618
web
-
github.com
/codeigniter4/CodeIgniter4/security/advisories/GHSA-hhmc-q9hp-r662
web
-
github.com
/codeigniter4/CodeIgniter4/releases/tag/v4.7.4
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-63222
advisory
-
github.com
/codeigniter4/CodeIgniter4
package
Sources
- CVE List CVE-2026-63222
- GitHub Advisory GHSA-hhmc-q9hp-r662
- NVD CVE-2026-63222
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.