Article
Laravel Authentication Bypass: A Two-Line Fix in August, the Advisory in October
Laravel's TokenGuard can accept a non-string token on MySQL and MariaDB. Follow the request, see the two-line fix and check your app before you…
Quick links
Press Enter to search, Esc to close
Vulnerability
An authentication bypass in the built-in TokenGuard of laravel/framework.
In short
CVE-2026-114509 is an authentication bypass in the built-in TokenGuard of laravel/framework. Under certain MySQL or MariaDB configurations a crafted non-string token can match an unintended user, so an unauthenticated attacker can take over an account on routes the guard protects. Laravel fixed it in 12.68.0 and 13.29.0. Laravel published the advisory on GitHub on 19 October 2026.
Laravel's built-in TokenGuard reads an API token from a request and looks up the user who owns it. The advisory says that, when an app uses the standard token-based API guard, an attacker can send a crafted value that is not a string. That lets the attacker authenticate as another existing user without knowing that user's token. It describes the result as authentication bypass and account takeover on any route the guard protects. The attacker needs no login. It is a form of account takeover.
The commit that fixes it shows the gap. Before the fix, the guard's user() method only tested that the token was not empty. An array with one item passes that test. The fix adds a check that the token is a string, and the same change makes validate() reject any credential that is not a string. The advisory says that under certain MySQL and MariaDB configurations the database lookup then matches an unintended user record. It does not name the configurations or publish the exploit detail.
In ATT&CK terms the closest entry is Valid Accounts (T1078), which MITRE describes as abusing the credentials of existing accounts. This flaw reaches a similar result without the credential, so treat the label as approximate.
GitHub: three public repositories about the flaw turned up in our search on 24 October. The first was created on 20 October 2026, about 12 hours after the advisory. Its README says it holds a lab with a vulnerable and a patched app plus a script. We read them and did not run or link them.
X: our search returned 28 unique public posts from 19 to 23 October. Hakai Security, a security company, posted on 20 October that its team published a working proof of concept and exploit. Italy's national CSIRT said on 22 October that a proof of concept is available, and the national cybersecurity agency ACN published the matching alert.
Our Laravel TokenGuard news post walks through the request path, the two-line fix and the checks.
The advisory lists laravel/framework versions below 12.68.0 and below 13.29.0. The CVE record lists below 12.68.0, and 13.0.0 up to below 13.29.0. The fixed versions are 12.68.0 and 13.29.0. The flaw applies only when the app uses the standard token-based API guard, which is a guard in config/auth.php whose driver is token.
auth: routes and users in MySQL or MariaDB. The advisory limits the flaw to certain configurations of these two databases.api guard with driver token. From tag v8.6.0 on, the skeleton lists only the web session guard.The advisory does not mention Sanctum or Passport. Laravel's documentation says Sanctum uses a sanctum guard and Passport uses a guard with the driver passport.
Laravel's support policy page says security fixes for Laravel 11 ended on 12 March 2026 and for Laravel 10 on 4 February 2025. Laravel 12 gets them until 24 February 2027 and Laravel 13 until 17 March 2028. The advisory names no fixed 10.x or 11.x release. A tag v11.56.1, dated 25 August 2026, carries the new check.
GHSA-5wcm-3v2w-8362 (CVE-2026-114508), "Unauthorized Data Destruction", was published 11 seconds later and is rated medium. It lists 12.68.0 as fixed on the 12.x line and 13.27.0 on 13.x.
Two commits titled "fix token retrieval" change TokenGuard.php, and Laravel tags v12.68.0 and v13.29.0 the same day. A tag v11.56.1 is dated the same day.
Laravel publishes advisory GHSA-f9x3-7vq9-cph6 on GitHub, rated critical with a CVSS 4.0 score of 9.2. The reporter is credited as KIKOmanasijev. A second advisory, GHSA-5wcm-3v2w-8362, appears 11 seconds later.
The first of the public GitHub repositories our search found is created, about 12 hours after the advisory. Hakai Security posts on X that its team published a working proof of concept and exploit.
The CVE record is published in NVD with CWE-287 and CWE-1287. The advisory is updated the same day.
Italy's national CSIRT says on X that a proof of concept is available, and ACN publishes alert AL02/261022 on its site.
Run composer show laravel/framework. Versions below 12.68.0 or below 13.29.0 fall in the advisory's ranges.
Open config/auth.php and look under guards for a driver named token. Then run php artisan route:list -v to find routes that use auth: followed by that guard's name.
Move to 12.68.0 or later on 12.x, or to 13.29.0 or later on 13.x, then run composer show laravel/framework again to confirm.
On Laravel 11 or 10 the policy page lists no security fixes any more and the advisory names no fixed release. Plan the move to a supported line.
Choose a window that starts at the 25 August commit date or the 19 October advisory date. Search application or proxy logs for requests where api_token arrived as a list, and review sign-ins on accounts that serve API routes.
If no route uses the token guard, remove it from config/auth.php so nothing is left to bypass.
The advisory names laravel/framework 12.68.0 and 13.29.0 as fixed.
The advisory covers the built-in TokenGuard and does not mention Sanctum or Passport. Laravel's documentation says Sanctum uses its own sanctum guard and Passport uses the passport driver.
The advisory says the lookup mishandles the value under certain MySQL and MariaDB configurations. It does not describe other databases and does not name the configurations.
It was not in the catalog as of its 23 October 2026 update.
GitHub repositories created from 20 October describe proof of concept code. Hakai Security says it published a working proof of concept and exploit. CSIRT Italia said on 22 October that one is available. We have not run any of it.
It is a separate advisory published 11 seconds later, rated medium, about data destruction through a read endpoint. 12.68.0 is the fixed version on 12.x for both.
Take control of your digital security with an exclusive demo of our AI-driven threat intelligence platform.