<Vulnerability name="CVE-2026-54619">
    <DocumentDistribution xml:lang="en">Copyright © 2012 Red Hat, Inc. All rights reserved.</DocumentDistribution>
    <ThreatSeverity>Moderate</ThreatSeverity>
    <PublicDate>2026-07-28T16:21:20</PublicDate>
    <Bugzilla id="2508082" url="https://bugzilla.redhat.com/show_bug.cgi?id=2508082" xml:lang="en:us">
sqlite3-ruby: sqlite3: sqlite3-ruby: Use-after-free when redefining SQLite functions with different arity
    </Bugzilla>
    <CVSS3 status="draft">
        <CVSS3BaseScore>4.5</CVSS3BaseScore>
        <CVSS3ScoringVector>CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:L</CVSS3ScoringVector>
    </CVSS3>
    <CWE>CWE-825</CWE>
    <Details xml:lang="en:us" source="Mitre">
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.
    </Details>
    <Details xml:lang="en:us" source="Red Hat">
A flaw was found in sqlite3-ruby. When a SQLite function is redefined with a different number of arguments (arity), the previously registered function handler is prematurely freed. This can lead to a use-after-free vulnerability, where the program attempts to access memory that has already been released. Such a vulnerability could potentially result in unexpected program behavior, information disclosure, or a denial of service.
    </Details>
    <Statement xml:lang="en:us">
This flaw exhibits low, bounded impact across Confidentiality, Integrity, and Availability (C:L, I:L, A:L) because exploitation requires an attacker to inject custom Ruby code that redefines an existing SQLite function with a different arity. In typical deployments, application databases process standard SQL queries and do not expose dynamic function registration interface bindings to untrusted user input. Consequently, successful exploitation is restricted to environments where untrusted local users already have execution privileges allowing them to register arbitrary Ruby callback functions.
    </Statement>
    <Mitigation xml:lang="en:us">
Mitigation for this issue is either not available or the currently available options do not meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base, or stability.
    </Mitigation>
    <PackageState cpe="cpe:/a:redhat:satellite:6">
        <ProductName>Red Hat Satellite 6</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>rubygem-sqlite3</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:satellite:6">
        <ProductName>Red Hat Satellite 6</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>satellite:el8/rubygem-sqlite3</PackageName>
    </PackageState>
    <References xml:lang="en:us">
https://www.cve.org/CVERecord?id=CVE-2026-54619
https://nvd.nist.gov/vuln/detail/CVE-2026-54619
https://github.com/sparklemotion/sqlite3-ruby/commit/2bd436d17f77cdd4c31b00fe9d50b0d21cbaf033
https://github.com/sparklemotion/sqlite3-ruby/pull/710
https://github.com/sparklemotion/sqlite3-ruby/releases/tag/v2.9.5
https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-28hh-pr2h-2w89
    </References>
</Vulnerability>