Codeigniter4
Monthly
Unauthenticated file upload validation bypass in the CodeIgniter4 PHP framework (versions prior to 4.7.4) lets a remote attacker upload executable PHP content by exploiting that the is_image and mime_in strict validation rules never enforced a safe client-supplied filename extension. Applications are affected only when they validate uploads solely with is_image or mime_in (without an independent extension check such as ext_in), persist files under the attacker-controlled client filename, and store them in a web-accessible, script-enabled directory. There is no public exploit identified at time of analysis and the flaw is not on the CISA KEV list; the upstream fix (commit b6e9a4f, released as v4.7.4) adds client-extension consistency checks.
Path traversal file write in the CodeIgniter4 PHP framework prior to 4.7.4 lets remote unauthenticated attackers place uploaded files outside the intended directory whenever an application calls UploadedFile::move() without an explicit second (name) argument. Because the default used the raw client-supplied filename, traversal sequences such as '../../public/shell.php' could drop attacker-controlled content into web-accessible or sensitive locations, potentially enabling code execution on affected sites. No public exploit identified at time of analysis, though the fixing commit ships a regression test that concretely demonstrates the traversal payload.
SQL injection in CodeIgniter4's Query Builder deleteBatch() method (versions 4.3.0 through 4.7.3) allows user-controlled where() condition values to be interpreted as executable SQL because bound values are substituted into the generated DELETE statement while their escape flags are ignored. Only the deleteBatch() batch-delete path is affected; ordinary delete() operations escape their binds correctly. No public exploit was identified at time of analysis, and the flaw is resolved in version 4.7.4.
HTTP security header spoofing in CodeIgniter4 prior to 4.7.4 allows remote unauthenticated attackers to trick the framework into treating plain HTTP requests as HTTPS by injecting forged X-Forwarded-Proto or Front-End-Https headers. The root cause is that IncomingRequest::isSecure() unconditionally trusted these headers from any source rather than restricting trust to configured trusted proxies, undermining isSecure(), force_https(), and forceGlobalSecureRequests enforcement logic. No public exploit or CISA KEV listing exists; real-world impact is conditioned on deployment topology and CVSS AC:H reflects this complexity.
Unauthenticated file upload validation bypass in the CodeIgniter4 PHP framework (versions prior to 4.7.4) lets a remote attacker upload executable PHP content by exploiting that the is_image and mime_in strict validation rules never enforced a safe client-supplied filename extension. Applications are affected only when they validate uploads solely with is_image or mime_in (without an independent extension check such as ext_in), persist files under the attacker-controlled client filename, and store them in a web-accessible, script-enabled directory. There is no public exploit identified at time of analysis and the flaw is not on the CISA KEV list; the upstream fix (commit b6e9a4f, released as v4.7.4) adds client-extension consistency checks.
Path traversal file write in the CodeIgniter4 PHP framework prior to 4.7.4 lets remote unauthenticated attackers place uploaded files outside the intended directory whenever an application calls UploadedFile::move() without an explicit second (name) argument. Because the default used the raw client-supplied filename, traversal sequences such as '../../public/shell.php' could drop attacker-controlled content into web-accessible or sensitive locations, potentially enabling code execution on affected sites. No public exploit identified at time of analysis, though the fixing commit ships a regression test that concretely demonstrates the traversal payload.
SQL injection in CodeIgniter4's Query Builder deleteBatch() method (versions 4.3.0 through 4.7.3) allows user-controlled where() condition values to be interpreted as executable SQL because bound values are substituted into the generated DELETE statement while their escape flags are ignored. Only the deleteBatch() batch-delete path is affected; ordinary delete() operations escape their binds correctly. No public exploit was identified at time of analysis, and the flaw is resolved in version 4.7.4.
HTTP security header spoofing in CodeIgniter4 prior to 4.7.4 allows remote unauthenticated attackers to trick the framework into treating plain HTTP requests as HTTPS by injecting forged X-Forwarded-Proto or Front-End-Https headers. The root cause is that IncomingRequest::isSecure() unconditionally trusted these headers from any source rather than restricting trust to configured trusted proxies, undermining isSecure(), force_https(), and forceGlobalSecureRequests enforcement logic. No public exploit or CISA KEV listing exists; real-world impact is conditioned on deployment topology and CVSS AC:H reflects this complexity.