CodeIgniter is a PHP full-stack web framework. From 4.3.0 through 4.7.3, Query Builder deleteBatch() substitutes bound values from where() conditions into generated SQL while ignoring their escape flags, allowing user-controlled condition values to be interpreted as SQL. This affects only the deleteBatch() code path. Regular delete() operations escape where() binds correctly. This issue is fixed in version 4.7.4.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-89"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/63xxx/CVE-2026-63221.json"
}{
"extracted_events": [
{
"range": [
{
"introduced": "4.3.0"
},
{
"fixed": "4.7.4"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "f5e463b9a3e986389ce285963e51a7f1fab6559f"
}
],
"source": "REFERENCES_COMMIT"
},
{
"original_tag": "v4.7.4",
"range": [
{
"fixed": "2bd0f01d2813f9ec06db42643ce39d9f5428bf6d"
}
],
"source": "REFERENCES_TAG"
}
]
}