cakephp/cakephp security advisory
CVE-2026-23643: CakePHP PaginatorHelper::limitControl() vulnerable to reflected cross-site-scripting
CVE-2026-23643 is a medium-severity XSS vulnerability in the PHP package cakephp/cakephp (CVSS 5.4), published 16 January 2026. It is fixed in 5.2.12; earlier versions are affected. It can be exploited without an account.
medium 5.4 published 2026-01-16 · updated 2026-06-17
- Affected versions
- =5.3.0
>=5.2.10,<5.2.12 - Fixed in
- 5.2.12
- Newest release
- 5.4.4
- Severity
- Medium · CVSS 5.4
- Type
- Cross-site scripting (XSS)
CWE-79 - Exploited in the wild
- Not on the CISA KEV list
checked 2026-11-04
Is your cakephp/cakephp version affected?
Who can exploit CVE-2026-23643
- Access: No account. Anyone who can send a request to an app that uses the affected code.
- Interaction: A user also has to do something, such as open a link or a page the attacker prepared.
CVSS vector (scored by GitHub): CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
How to fix CVE-2026-23643 in cakephp/cakephp
- Find the installed version:
composer show cakephp/cakephp. If you never required it yourself,composer why cakephp/cakephpshows which package pulls it in. - Update it:
composer update cakephp/cakephp --with-all-dependencies. You need 5.2.12 or newer. - If Composer will not go that high, your composer.json constraint is holding it back. Widen it (for example
"cakephp/cakephp": "^5.2.12"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-23643. - Commit composer.lock and deploy it. On the server, run
composer install --no-devfrom the lock file, notcomposer update.
If you cannot upgrade yet
- Escape output in your own templates and add a Content-Security-Policy that blocks inline scripts.
- Limit who can save the content the advisory names (for example rich text, SVG or form fields).
- If your app does not use the affected feature, note that in your audit, but still plan the upgrade.
The CVE-2026-23643 advisory
CakePHP is a rapid development framework for PHP. The PaginatorHelper::limitControl() method has a cross-site-scripting vulnerability via query string parameter manipulation. This issue has been fixed in 5.2.12 and 5.3.1.
References
- GitHub advisory GHSA-qh8m-9qxx-53m5 github.com
- Fix commit c842e7f github.com
- Release 5.2.12 github.com
- Release 5.3.1 github.com
- bakery.cakephp.org bakery.cakephp.org
- github.com github.com
Other cakephp/cakephp advisories
- critical CVE-2026-79752: CakePHP: Multiple methods in FunctionsBuilder vulnerable to SQL injection 2026-09-17
- critical CVE-2026-77635: CakePHP: FunctionsBuilder::jsonValue() vulerable to SQL injection with PostgresDriver 2026-09-08
- high CVE-2026-77634: CakePHP: SmtpTransport vulnerable to CRLF header injection 2026-09-08
- medium CVE-2026-48820: CakePHP: View::element() is missing a path containment check 2026-06-26
- critical CVE-2023-22727: CakePHP Database\\Query::offset() and limit() methods are vulnerable to SQL injection 2023-01-20
- high CVE-2020-35239: CakePHP allows method override parameters to bypass CSRF checks 2022-05-24
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.