VDB
KO
LOW

GHSA-j7fr-3v8c-3qc3

sqlite3-ruby has Use-After-Free in SQLite Aggregate Function Callbacks

Quick fix

GHSA-j7fr-3v8c-3qc3 — sqlite3-ruby: upgrade to the fixed version with the command below.

bundle update sqlite3-ruby

Details

## Summary

Using `Database#create_aggregate`, `#create_aggregate_handler`, or `Database#define_aggregator` to define an aggregate function, and then using an open statement calling that function after the database has been explicitly closed will result in an invalid memory read and a segmentation fault.

## Mitigation

Upgrade to sqlite3 gem v2.9.5 or later.

As a workaround, avoid using an aggregate function after closing the database.

## 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.

Are you affected?

Enter the version of the package you're using.

Affected packages

RubyGems / sqlite3-ruby
Introduced in: 2.1.0 Fixed in: 2.9.5
Fix bundle update sqlite3-ruby
RubyGems / sqlite3
Introduced in: 2.1.0 Fixed in: 2.9.5
Fix bundle update sqlite3

References