sqlite3 provides Ruby bindings for the SQLite3 embedded database. From 2.1.0 to 2.9.4, the callbacks used for SQLite aggregate functions can be freed while still referenced during aggregation, resulting in a use-after-free. This issue is fixed in version 2.9.5.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-416"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54620.json"
}"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-54620.json"
[
{
"target": {
"function": "sqlite3_rb_discard",
"file": "ext/sqlite3/database.c"
},
"deprecated": false,
"source": "https://github.com/sparklemotion/sqlite3-ruby/commit/b24e1e6076528b7f95f99acf7a81c70d0004c726",
"id": "CVE-2026-54620-36ea4fd9",
"signature_version": "v1",
"digest": {
"length": 191.0,
"function_hash": "230264218131979185470418694721117338542"
},
"signature_type": "Function"
},
{
"target": {
"file": "ext/sqlite3/database.c"
},
"deprecated": false,
"source": "https://github.com/sparklemotion/sqlite3-ruby/commit/b24e1e6076528b7f95f99acf7a81c70d0004c726",
"id": "CVE-2026-54620-6d62c435",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"265689249784512259660747625313946247212",
"131755143084933356590064351947908408322",
"172163203058175261443017676469810333826",
"99368928534202922022608717387938448892",
"189913336094798000787304534379186812386",
"214805861890130422514572409193550623479",
"217544246339400958419911529239314275950",
"99368928534202922022608717387938448892"
]
},
"signature_type": "Line"
},
{
"target": {
"function": "sqlite3_rb_close",
"file": "ext/sqlite3/database.c"
},
"deprecated": false,
"source": "https://github.com/sparklemotion/sqlite3-ruby/commit/b24e1e6076528b7f95f99acf7a81c70d0004c726",
"id": "CVE-2026-54620-cf0a461b",
"signature_version": "v1",
"digest": {
"length": 191.0,
"function_hash": "230264218131979185470418694721117338542"
},
"signature_type": "Function"
}
]
"2026-08-12T16:41:16Z"