laravel/framework: Laravel TokenGuard authentication bypass through non-string API credentials
What fixes it
- 13.29.0laravel/framework, composerGitHub
composer require "laravel/framework:^13.29.0" - 12.68.0laravel/framework, composerGitHub
composer require "laravel/framework:^12.68.0" - 13.29.0laravel/framework, PackagistOSV
composer require "laravel/framework:^13.29.0" - 12.68.0laravel/framework, PackagistOSV
composer require "laravel/framework:^12.68.0"
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Timeline
- 20 Oct 2026, 01:52 UTCExploit code publicGitHub proof-of-concept repositories
- 21 Oct 2026, 21:49 UTCPublishedCVE List
Reports 5
2 outlets mention it. Reports are not confirmation; each links to its source.
- emirwtz/CVE-2026-114509: Python detector for Laravel TokenGuard CVE-2026-114509 with local dependency analysis, remote authentication checks, and JSON reporting.GitHub proof-of-concept repositories, 24 Oct 2026Exploit code
- @securitylab-jp.bsky.social: PHP フレームワーク Laravelに認証回避脆弱性「CVE-2026-114509」、PoC公開 TokenGuardでAPIトークンなしのなりすまし、CVSS 9.2 rocket-boys.co.jp/security-mea... #セキュリティ対策Lab #security #securitynews #セキュリティ #セキュリティニュースBluesky: CVE posts, 24 Oct 2026
- ArioVeisa/cve-2026-114509-laravel-tokenguard: CVE-2026-114509 — Laravel TokenGuard authentication bypass (CVSS 9.2): PoC, root-cause analysis, Docker lab, and reproduction guideGitHub proof-of-concept repositories, 24 Oct 2026Exploit code
- dimasma0305/CVE-2026-114509: Reproducible local Laravel lab and self-checking PoC for CVE-2026-114509GitHub proof-of-concept repositories, 24 Oct 2026Exploit code
- hakaioffsec/CVE-2026-114509-PoC: A poc for https://github.com/laravel/framework/security/advisories/GHSA-f9x3-7vq9-cph6GitHub proof-of-concept repositories, 20 Oct 2026Exploit code
Description
Laravel's built-in TokenGuard, when configured with a standard token-based API guard, may be bypassed to authenticate as an arbitrary existing user without knowledge of their valid API token.
Under certain database configurations (MySQL/MariaDB) an attacker can submit a specially crafted, non-string credential value that is mishandled during the authentication lookup, causing the underlying query to match an unintended user record rather than failing authentication as expected.
Impact
An unauthenticated attacker may authenticate as another user without possessing that user's API token, leading to authentication bypass and account takeover on any route protected by the affected guard.
Text from GitHub Advisory Database
Affected versions 94
- laravel/framework, composer>= 13.0.0, < 13.29.0GitHub
- laravel/framework, composer< 12.68.0GitHub
- frameworkaffected: < 12.68.0CVE List
- frameworkaffected: >= 13.0.0, < 13.29.0CVE List
- laravel/framework, composer< 13.29.0GitHub
- laravel/framework, composer< v12.68.0GitHub
- laravel/framework, Packagistfrom 13.0.0, fixed in 13.29.0OSV
- laravel/framework, Packagistv13.0.0OSV
- laravel/framework, Packagistv13.1.0OSV
- laravel/framework, Packagistv13.1.1OSV
- laravel/framework, Packagistv13.10.0OSV
- laravel/framework, Packagistv13.11.0OSV
- laravel/framework, Packagistv13.11.1OSV
- laravel/framework, Packagistv13.11.2OSV
- laravel/framework, Packagistv13.12.0OSV
- laravel/framework, Packagistv13.13.0OSV
- laravel/framework, Packagistv13.14.0OSV
- laravel/framework, Packagistv13.15.0OSV
- laravel/framework, Packagistv13.16.0OSV
- laravel/framework, Packagistv13.16.1OSV
- laravel/framework, Packagistv13.17.0OSV
- laravel/framework, Packagistv13.18.0OSV
- laravel/framework, Packagistv13.18.1OSV
- laravel/framework, Packagistv13.19.0OSV
- laravel/framework, Packagistv13.2.0OSV
- laravel/framework, Packagistv13.20.0OSV
- laravel/framework, Packagistv13.21.0OSV
- laravel/framework, Packagistv13.21.1OSV
- laravel/framework, Packagistv13.22.0OSV
- laravel/framework, Packagistv13.23.0OSV
- laravel/framework, Packagistv13.24.0OSV
- laravel/framework, Packagistv13.25.0OSV
- laravel/framework, Packagistv13.26.0OSV
- laravel/framework, Packagistv13.26.1OSV
- laravel/framework, Packagistv13.27.0OSV
- laravel/framework, Packagistv13.28.0OSV
- laravel/framework, Packagistv13.3.0OSV
- laravel/framework, Packagistv13.4.0OSV
- laravel/framework, Packagistv13.5.0OSV
- laravel/framework, Packagistv13.6.0OSV
- laravel/framework, Packagistv13.7.0OSV
- laravel/framework, Packagistv13.8.0OSV
- laravel/framework, Packagistv13.9.0OSV
- laravel/framework, Packagistfrom first release, fixed in 12.68.0OSV
- laravel/framework, Packagist10.50.2OSV
- laravel/framework, Packagist5.0.30OSV
- laravel/framework, Packagist5.2.41OSV
- laravel/framework, Packagistv10.0.0OSV
- laravel/framework, Packagistv10.0.1OSV
- laravel/framework, Packagistv10.0.2OSV
- laravel/framework, Packagistv10.0.3OSV
- laravel/framework, Packagistv10.1.0OSV
- laravel/framework, Packagistv10.1.1OSV
- laravel/framework, Packagistv10.1.2OSV
- laravel/framework, Packagistv10.1.3OSV
- laravel/framework, Packagistv10.1.4OSV
- laravel/framework, Packagistv10.1.5OSV
- laravel/framework, Packagistv10.10.0OSV
- laravel/framework, Packagistv10.10.1OSV
- laravel/framework, Packagistv10.11.0OSV
- laravel/framework, Packagistv10.12.0OSV
- laravel/framework, Packagistv10.13.0OSV
- laravel/framework, Packagistv10.13.1OSV
- laravel/framework, Packagistv10.13.2OSV
- laravel/framework, Packagistv10.13.3OSV
- laravel/framework, Packagistv10.13.5OSV
- laravel/framework, Packagistv10.14.0OSV
- laravel/framework, Packagistv10.14.1OSV
- laravel/framework, Packagistv10.15.0OSV
- laravel/framework, Packagistv10.16.0OSV
- laravel/framework, Packagistv10.16.1OSV
- laravel/framework, Packagistv10.17.0OSV
- laravel/framework, Packagistv10.17.1OSV
- laravel/framework, Packagistv10.18.0OSV
- laravel/framework, Packagistv10.19.0OSV
- laravel/framework, Packagistv10.2.0OSV
- laravel/framework, Packagistv10.20.0OSV
- laravel/framework, Packagistv10.21.0OSV
- laravel/framework, Packagistv10.21.1OSV
- laravel/framework, Packagistv10.22.0OSV
- laravel/framework, Packagistv10.23.0OSV
- laravel/framework, Packagistv10.23.1OSV
- laravel/framework, Packagistv10.24.0OSV
- laravel/framework, Packagistv10.25.0OSV
- laravel/framework, Packagistv10.25.1OSV
- laravel/framework, Packagistv10.25.2OSV
- laravel/framework, Packagistv10.26.0OSV
- laravel/framework, Packagistv10.26.1OSV
- laravel/framework, Packagistv10.26.2OSV
- laravel/framework, Packagistv10.27.0OSV
- laravel/framework, Packagistv10.28.0OSV
- laravel/framework, Packagistv10.29.0OSV
- laravel/framework, Packagistv10.3.0OSV
- laravel/framework, Packagistv10.3.1OSV
References 7
- github.com/laravel/framework/commit/8dbb08bccac1be095dba4a9d259a419620f1e8a5Fixvia CVE List
- github.com/laravel/framework/commit/9b21ce0a9bb2b2599978bc0b0df4abea952ad31cFixvia CVE List
- github.com/laravel/framework/releases/tag/v12.68.0Fixvia CVE List
- github.com/laravel/framework/releases/tag/v13.29.0Fixvia CVE List
- github.com/laravel/framework/security/advisories/GHSA-f9x3-7vq9-cph6Advisoryvia CVE List
- github.com/advisories/GHSA-f9x3-7vq9-cph6Advisoryvia GitHub
- nvd.nist.gov/vuln/detail/CVE-2026-114509Referencevia GitHub