VDB
KO
LOW

GHSA-28hh-pr2h-2w89

sqlite3-ruby has Use-After-Free When Redefining SQLite Functions with Different Arity

Quick fix

GHSA-28hh-pr2h-2w89 — sqlite3-ruby: upgrade to the fixed version with the command below.

bundle update sqlite3-ruby

Details

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

Are you affected?

Enter the version of the package you're using.

Affected packages

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

References