Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify endpoint forwarding user input into OVER clause
-
DeliveryCraft malicious frame offset/direction value
-
ExploitInject SQL via WindowExpression range()/frame()
-
ExecutionQuery executes with DB connection privileges
-
ImpactRead, modify, or destroy database data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Persistence The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the target application to forward unvalidated user input into a CakePHP window-function OVER clause - specifically into WindowExpression::range() or frame() as frame offsets (startOffset/endOffset) or directions (startDirection/endDirection), or into related partition/orderBy/function-name strings. This is a non-default coding pattern: a stock CakePHP install is not exploitable unless developer code builds windowed queries from request data. No framework-level authentication is required of the attacker (PR:N), and no user interaction is needed (UI:N), but the attack requirement (AT:P) and high complexity (AC:H) reflect that the specific vulnerable code path and input forwarding must be present. The only complete fix stated by the evidence is updating past 5.4.3 to a version containing the ensureSimpleString() validation. |
| Impact | This is a genuinely high-severity SQL injection (CWE-89) carrying a CVSS 4.0 base score of 9.2 with full VC:H/VI:H/VA:H impact, and the vuln.today Decision label is act_now, so it should be treated as urgent rather than a high-score-but-low-risk theoretical issue. However, the signals are not uniformly alarming: the 4.0 vector itself encodes friction via AC:H and AT:P (attack requirements present), reflecting that exploitation is NOT a default-configuration remote hit but depends on the application forwarding unvalidated user input into the window-function OVER clause (WindowExpression::range()/frame() offsets and directions). PR:N confirms no framework-level authentication is required of the attacker. No EPSS score and no CISA KEV entry are present in the input, so there is no quantified exploitation-probability signal and no evidence of active exploitation; the urgency here derives from the act_now label, the critical impact, the confirmed vendor patch, and VulnCheck's reporting rather than from observed in-the-wild activity. A public research/PoC reference exists (abraxaslabs.tech and the VulnCheck advisory) but the input does not confirm it as working exploit code. Net: prioritize patching for any CakePHP application that builds window queries from user input, but recognize the real-world blast radius is bounded by that specific coding pattern. |
| Exploit ScenarioDerived | An application uses CakePHP's query builder to construct a windowed query (OVER clause) and passes user-supplied values into WindowExpression::range() or frame() as frame offsets or directions. An attacker submits crafted frame-offset or direction values (e.g. containing 'OR 1=1'-style payloads) that are concatenated unvalidated into the generated SQL, causing arbitrary SQL to execute with the database connection's privileges. A public PoC/research reference exists but is not verified as working exploit code in the provided input. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
SQL injection in CakePHP through 5.4.3 allows an attacker who can influence window-function query parameters to inject SQL that executes with the database connection's privileges, giving full confidentiality, integrity and availability impact and a CVSS 4.0 base score of 9.2. The exposure is conditional: only applications that forward unvalidated user input into a window OVER clause - the frame offsets and directions of WindowExpression::range() and frame(), or the related partition, orderBy and function-name strings - are reachable, so a stock CakePHP deployment without that coding pattern is not exploitable. Attacker authentication at the framework level is not required and no user interaction is needed, vendor fix commits and PR 19735 are available, no confirmed public exploit code is identified in the reporting, and the priority guidance is act_now.
RemediationAI
Upgrade CakePHP past 5.4.3 to a release that contains the ensureSimpleString() validation added in https://github.com/cakephp/cakephp/pull/19735 and its constituent commits (https://github.com/cakephp/cakephp/commit/18de3e4cdabba049269421bf43c2ccd1a7451565, https://github.com/cakephp/cakephp/commit/a5ca1748dcdb432631fc2760f898576043ce3df9, https://github.com/cakephp/cakephp/commit/3c1183fb62274c8a1c2780b2d3cc40f40cf31f1f); the reporting gives no separate fixed version number beyond the 5.4.3 boundary, and updating to a build carrying those guards is the only complete fix the evidence states. Until the upgrade is applied, the exposure is confined to code paths that pass request-derived values into WindowExpression::range()/frame() offsets or directions or into the partition, orderBy and function-name arguments, so auditing and removing such forwarding - supplying only literal or whitelisted identifiers and bound values for those parameters - removes reachability, at the cost of refactoring any dynamic window specifications rather than a configuration toggle. Vendor and advisory detail is at https://www.vulncheck.com/advisories/cakephp-through-5.4.3-sql-injection-via-windowexpression-range-and-frame and https://abraxaslabs.tech/research/cakephp-window-sqli.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
CakePHP's Database layer builds SQL through an expression object tree, and WindowExpression produces the OVER (...) clause used by window functions such as ROW_NUMBER, RANK and aggregate OVER variants. The OVER clause grammar includes partitioning, ordering and a frame specification of the form ROWS|RANGE BETWEEN <offset> PRECEDING AND <offset> FOLLOWING, where offsets and directions are conventionally identifiers or bound-literal expressions rather than raw SQL fragments. In versions through 5.4.3 the frame offsets and directions passed to WindowExpression::range() and frame() - and the partition, orderBy and function-name strings handled by neighbouring expression classes - were interpolated without validation, so crafted values break out of the intended clause structure; this is the classic CWE-89 improper neutralisation of special elements used in SQL commands. The upstream patch introduces QueryExpression::ensureSimpleString() checks on name, partitions, fields, start/end offsets and start/end directions, tightens the identifier regex to accept quoted identifiers, and hardens AggregateExpression, FunctionExpression and StringAggExpression with the same guard plus unit tests asserting InvalidArgumentException for payload-style names. Because these APIs are developer-facing query builders, the CVSS 4.0 AT:P and AC:H metrics reflect that a specific, non-default application coding pattern must exist and be reachable for the injection to be triggerable; the framework itself supplies no automatic path from request data into these parameters.
Know when Cakephp gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Network-reachable with no attacker authentication (AV:N/PR:N), but exploitation depends on the app forwarding user input into window frame parameters, raising AC:H; SQLi yields full C/I/A impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
CakePHP through 5.4.3 contains an sql injection vulnerability that allows attackers to inject SQL by supplying unvalidated frame offsets and directions to WindowExpression::range() and frame(). Attackers can pass crafted values through applications forwarding user input into the OVER clause to execute SQL with the database connection's privileges.
Articles & Coverage 1
Executive ViewAI
CakePHP, a widely used PHP web framework, contains a critical SQL injection flaw (CVE-2026-119418) affecting versions through 5.4.3, where attacker-controlled input reaching window-function query parameters can compromise the confidentiality, integrity, and availability of the underlying database. Only applications that pass unvalidated user input into window OVER clauses are exposed, so business risk concentrates on internet-facing applications using this pattern. Leadership should prioritize these systems given the critical severity and the publicly documented fix.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.
The Xml class in CakePHP 2.1.x before 2.1.5 and 2.2.x before 2.2.1 allows remote attackers to read arbitrary files via X
The clientIp function in CakePHP 3.2.4 and earlier allows remote attackers to spoof their IP via the CLIENT-IP HTTP head
CakePHP 2.x and 3.x before 3.1.5 might allow remote attackers to bypass the CSRF protection mechanism via the _method pa
CakePHP is a development framework for PHP web apps. Rated critical severity (CVSS 9.8), this vulnerability is remotely
SQL injection in the CakePHP PHP framework (versions prior to 4.5.12, 4.6.5, 5.1.9, 5.2.14, and 5.3.7) allows unauthenti
SQL injection in CakePHP's database layer allows attackers to inject arbitrary SQL when an application uses FunctionsBui
SQL injection in CakePHP 5.4.3 and earlier allows an attacker who can influence a collation name passed to the StringExp
Authentication bypass in the CakePHP Authentication plugin's CookieAuthenticator (versions before 2.11.2, 3.0.0-3.3.6, a
Email header injection in CakePHP's Mailer component allows CRLF sequences embedded in custom header values to split SMT
An issue was discovered in SmtpTransport in CakePHP 3.7.6. Rated high severity (CVSS 7.5), this vulnerability is remotel
Local file inclusion in CakePHP's View::_getElementFileName() allows remote attackers to include arbitrary PHP files fro
Email header injection in CakePHP's SmtpTransport and MailTransport lets data that an application places into custom mai
EUVD-2026-113798
GHSA-h3r5-88vp-3qm7
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB