CVE-2026-54619
sqlite3-ruby has Use-After-Free When Redefining SQLite Functions with Different Arity
sqlite3 provides Ruby bindings for the SQLite3 embedded database. In version 2.9.4 and earlier, redefining a SQLite function with a different arity frees the previously registered function handler while SQLite may still reference it, resulting in a use-after-free. This issue is fixed in version 2.9.5.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- High
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- Low
- Integrity
- Low
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
2.0
sqlite3-ruby has Use-After-Free When Redefining SQLite Functions with Different Arity
sqlite3 provides Ruby bindings for the SQLite3 embedded database. In version 2.9.4 and earlier, redefining a SQLite function with a different arity frees the previously registered function handler while SQLite may still reference it, resulting in a use-after-free. This issue is fixed in version 2.9.5.
- Record
CVE-2026-54619- CVSS 4.0
- 2.0 Low
CVSS:4.0/AV:L/AC:H/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N - Weakness
- CWE-416
- Updated
- 2026-11-02
EUVDEUVD-2026-49896
2.0
sqlite3 provides Ruby bindings for the SQLite3 embedded database. In version 2.9.4 and earlier, redefining a SQLite function with a different arity frees the previously registered function handler while SQLite may still reference it, resulting in a use-after-free. This issue is fixed in version 2.9.5.
- Record
EUVD-2026-49896- CVSS 4.0
- 2.0 Low
CVSS:4.0/AV:L/AC:H/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-28hh-pr2h-2w89
2.0
sqlite3-ruby has Use-After-Free When Redefining SQLite Functions with Different Arity
Summary
Using Database#create_function or Database#define_function to define the same function name more than once with different numbers of arguments ("arity") or text encodings will result in a invalid memory read and a segmentation fault.
Mitigation
Upgrade to sqlite3 gem v2.9.5 or later.
As a workaround, avoid defining multiple custom functions with the same name (varying numbers of arguments or encoding).
Severity
The sqlite3-ruby maintainers assess this as Low severity. It is reliably triggered after GC when code is structured in a particular way. There is no known general exploit that could be used as a denial of service attack.
- Record
GHSA-28hh-pr2h-2w89- CVSS 4.0
- 2.0 Low
CVSS:4.0/AV:L/AC:H/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N - Weakness
- CWE-416
- Updated
- 2026-11-02
NVD
2.0
sqlite3 provides Ruby bindings for the SQLite3 embedded database. In version 2.9.4 and earlier, redefining a SQLite function with a different arity frees the previously registered function handler while SQLite may still reference it, resulting in a use-after-free. This issue is fixed in version 2.9.5.
- Record
CVE-2026-54619- CVSS 4.0
- 2.0 Low
CVSS:4.0/AV:L/AC:H/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Weakness
- CWE-416
- Updated
- 2026-11-02
OSV
2.0
sqlite3-ruby has Use-After-Free When Redefining SQLite Functions with Different Arity
sqlite3 provides Ruby bindings for the SQLite3 embedded database. In version 2.9.4 and earlier, redefining a SQLite function with a different arity frees the previously registered function handler while SQLite may still reference it, resulting in a use-after-free. This issue is fixed in version 2.9.5.
- Record
CVE-2026-54619- CVSS 4.0
- 2.0 Low
CVSS:4.0/AV:L/AC:H/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N - Weakness
- CWE-416
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-54619
2.0
sqlite3 provides Ruby bindings for the SQLite3 embedded database. In version 2.9.4 and earlier, redefining a SQLite function with a different arity frees the previously registered function handler while SQLite may still reference it, resulting in a use-after-free. This issue is fixed in version 2.9.5.
- Record
DEBIAN-CVE-2026-54619- CVSS 4.0
- 2.0 Low
CVSS:4.0/AV:L/AC:H/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
OSVGHSA-28hh-pr2h-2w89
2.0
sqlite3-ruby has Use-After-Free When Redefining SQLite Functions with Different Arity
Summary
Using Database#create_function or Database#define_function to define the same function name more than once with different numbers of arguments ("arity") or text encodings will result in a invalid memory read and a segmentation fault.
Mitigation
Upgrade to sqlite3 gem v2.9.5 or later.
As a workaround, avoid defining multiple custom functions with the same name (varying numbers of arguments or encoding).
Severity
The sqlite3-ruby maintainers assess this as Low severity. It is reliably triggered after GC when code is structured in a particular way. There is no known general exploit that could be used as a denial of service attack.
- Record
GHSA-28hh-pr2h-2w89- CVSS 4.0
- 2.0 Low
CVSS:4.0/AV:L/AC:H/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N - Weakness
- CWE-416
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-54619
2.0
sqlite3 provides Ruby bindings for the SQLite3 embedded database. In version 2.9.4 and earlier, redefining a SQLite function with a different arity frees the previously registered function handler while SQLite may still reference it, resulting in a use-after-free. This issue is fixed in version 2.9.5.
- Record
UBUNTU-CVE-2026-54619- CVSS 4.0
- 2.0 Low
CVSS:4.0/AV:L/AC:H/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
sqlite3-rubyRubyGems |
through 2.9.4 | 2.9.5 |
sqlite3RubyGems |
through 2.9.4 | 2.9.5 |
ruby-sqlite3Debian:12 |
All versions, plus listed versions 1.4.2-41.6.9-11.6.9-21.7.3-11.7.3-2 Show 8 moreShow less2.10.0-1~exp12.9.0-12.9.1-12.9.3-12.9.5-12.9.5-22.9.6-12.9.6-2 |
None known |
ruby-sqlite3Debian:13 |
All versions, plus listed versions 1.7.3-11.7.3-22.10.0-1~exp12.9.0-12.9.1-1 Show 5 moreShow less2.9.3-12.9.5-12.9.5-22.9.6-12.9.6-2 |
None known |
ruby-sqlite3Debian:14 |
before 2.9.5-1, plus listed versions 1.7.3-11.7.3-22.9.0-12.9.1-12.9.3-1 |
2.9.5-1 |
sqlite3-rubyRubyGems |
before 2.9.5, plus listed versions 0.5.00.6.00.9.01.0.01.0.1 Show 14 moreShow less1.1.01.2.01.2.11.2.21.2.31.2.41.2.51.3.01.3.0.beta.11.3.0.beta.21.3.11.3.21.3.31.3.3.beta.1 |
2.9.5 |
sqlite3RubyGems |
before 2.9.5, plus listed versions 0.0.00.0.10.0.20.0.30.0.4 Show 45 moreShow less0.0.50.0.60.0.70.0.80.1.00.1.11.3.101.3.111.3.121.3.131.3.31.3.3.beta.11.3.41.3.51.3.61.3.71.3.81.3.91.4.01.4.11.4.21.4.31.4.41.5.01.5.0.rc11.5.0.rc21.5.11.5.21.5.31.5.41.6.01.6.0.rc11.6.0.rc21.6.11.6.21.6.31.6.41.6.51.6.5.rc11.6.61.6.71.6.81.6.91.7.01.7.1 |
2.9.5 |
ruby-sqlite3Ubuntu:16.04:LTS |
All versions, plus listed versions 1.3.10-11.3.11-11.3.11-1build11.3.11-21.3.11-2build1 |
None known |
ruby-sqlite3Ubuntu:18.04:LTS |
All versions, plus listed versions 1.3.13-11.3.13-1build11.3.13-1build2 |
None known |
ruby-sqlite3Ubuntu:20.04:LTS |
All versions, plus listed versions 1.3.13-1build21.4.2-2build1 |
None known |
Show 4 moreShow less
| Package | Affected | Fixed |
|---|---|---|
ruby-sqlite3Ubuntu:22.04:LTS |
All versions, plus listed versions 1.4.2-31.4.2-3build11.4.2-4 |
None known |
ruby-sqlite3Ubuntu:24.04:LTS |
All versions, plus listed versions 1.4.2-4build21.4.2-4build31.4.2-4build4 |
None known |
ruby-sqlite3Ubuntu:26.10 |
All versions, plus listed versions 1.7.3-22.9.5-2 |
None known |
ruby-sqlite3Ubuntu:26.04:LTS |
All versions, plus listed versions 1.7.3-11.7.3-2 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-54619 is a low vulnerability (CVSS 2.0) in Sparklemotion Sqlite3-ruby, published July 28, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.14%, the 3rd percentile. Fixed in sqlite3-ruby 2.9.5.
References
github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-28hh-pr2h-2w89
github.com/sparklemotion/sqlite3-ruby/pull/710
github.com/sparklemotion/sqlite3-ruby/commit/2bd436d17f77cdd4c31b00fe9d50b0d21cbaf033
github.com/sparklemotion/sqlite3-ruby/releases/tag/v2.9.5
github.com/rubysec/ruby-advisory-db/blob/master/gems/sqlite3/CVE-2026-54619.yml
cve.org/CVERecord/SearchResults?query=CVE-2026-54619
Show 7 moreShow less
github.com/advisories/GHSA-28hh-pr2h-2w89
github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54619.json
nvd.nist.gov/vuln/detail/CVE-2026-54619
security-tracker.debian.org/tracker/CVE-2026-54619
github.com/sparklemotion/sqlite3-ruby
ubuntu.com/security/CVE-2026-54619
cve.org/CVERecord?id=CVE-2026-54619
Left out here: 33 versions. The JSON record has them.