Query Binding Exploitation

Description

Description

Laravel versions <6.20.12, <7.30.3 & <8.22.1 contain a query binding exploitation.

If a request is crafted where a field that is normally a non-array value is an array, and that input is not validated or cast to its expected type before being passed to the query builder, an unexpected number of query bindings can be added to the query. In some situations, this will simply lead to no results being returned by the query builder; however, it is possible certain queries could be affected in a way that causes the query to return unexpected results.

This vulnerability was discovered by Tim Groenevelt ([email protected]).

References

  • https://github.com/laravel/framework/pull/35865

Basic information

Type
reviewed
Severity
high
Advisory on GitHub
Open advisory ↗
Repository advisory
Open repository advisory ↗
Source code
Not specified
Published (advisory)
2021-01-19 19:36:51 UTC
Updated
2024-02-15 05:07:00 UTC
GitHub reviewed
2021-01-19 19:36:31 UTC
NVD published
2021-01-19

EPSS Score

Score Percentile
1.14% 77.79%

CVSS Scores

Base score Version Severity Vector
7.2 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N Click to expand
Attack vector (AV:N)
Could be attacked over the internet or any normal routed network—not just someone sitting at the machine.
Attack complexity (AC:L)
Once they can reach the bug, pulling it off is straightforward—no weird race conditions or rare setup.
Privileges required (PR:N)
No account or special rights needed—anonymous or random user is enough.
User interaction (UI:N)
Nobody has to click “OK” or open a trap file; it can work without a victim helping.
Scope (S:C)
Breaking this can reach past the original component and bite other resources—bigger blast radius.
Confidentiality (C:L)
Some sensitive info could get out, but not a total data dump.
Integrity (I:L)
Attackers could change some data, but it’s limited—not everything goes.
Availability (A:N)
Service keeps running; no real outage angle.

Identifiers

CWEs

CWE id Name
CWE-74 Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')
CWE-89 Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')

Affected packages (6)

Vulnerable version ranges and first patched releases as published by GitHub.

Ecosystem Package Vulnerable range First patched Vulnerable functions
composer laravel/framework >= 8.0.0, < 8.22.1 8.22.1
composer illuminate/database >= 7.0.0, < 7.30.3 7.30.3
composer illuminate/database >= 8.0.0, < 8.22.1 8.22.1
composer illuminate/database >= 6.0.0, < 6.20.12 6.20.12
composer laravel/framework >= 6.0.0, < 6.20.11 6.20.11
composer laravel/framework >= 7.0.0, < 7.30.2 7.30.2

References

cvelogic Threat Intelligence