CVE-2026-128084: sqlite3-ruby · Possible SQL query truncation when a string is 4 GiB or larger
Affects sqlite3Source GCVE Database
Not known to be exploited · CVSS 4.8 Medium : upgrade to 2.10.2 when convenient.
Data as of 13 Nov 2026, 20:19 UTC
Thin evidence
One scorer or none| CNA (GitHub_M) | CVSS 3.1 | 4.8 |
|---|
- Patch
- Available – fixed in 2.10.2
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:NExploitation evidence
Disclosed: evidence found.
CVE published 13 Nov 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 13 Nov 2026.
What to do
Upgrade sqlite3 to 2.10.2.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| RubyGemssqlite3 | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
Upgrade sqlite3-ruby to version 2.10.2 or later, which raises a RangeError for strings longer than INT_MAX bytes and prevents truncation. For earlier versions, reject SQL strings and bound values of 4 GiB or larger before passing them to sqlite3-ruby. Additionally, limit request body sizes well below 4 GiB to prevent exploitation.
Description
The sqlite3-ruby library improperly casts Ruby string lengths from long to int before passing them to SQLite, causing string lengths of 4 GiB or larger to wrap on 64-bit platforms. This results in SQL query truncation where only the first length mod 2^32 bytes are processed. An attacker controlling the SQL string length could truncate queries, potentially dropping trailing clauses such as WHERE. The issue affects SQL strings passed to Database#prepare, #execute, bound parameters, and Ruby-defined SQL functions and aggregates. The vulnerability is fixed in sqlite3-ruby version 2.10.2, which raises a RangeError for strings longer than INT_MAX bytes.
References
- github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-4fqr-96q8-xrfx (opens in a new tab)
- github.com/sparklemotion/sqlite3-ruby/pull/762 (opens in a new tab)
- github.com/sparklemotion/sqlite3-ruby/commit/41059aa3ccc2c0f910d6df4fccfe36b3c3c6c649 (opens in a new tab)
- github.com/rubysec/ruby-advisory-db/blob/master/gems/sqlite3/GHSA-4fqr-96q8-xrfx.yml (opens in a new tab)
- github.com/sparklemotion/sqlite3-ruby (opens in a new tab)
- github.com/sparklemotion/sqlite3-ruby/releases/tag/v2.10.2 (opens in a new tab)