ActiveRecord-JDBC-Adapter (AR-JDBC) lib/arjdbc/jdbc/adapter.rb sql.gsub() Function SQL InjectionGHSA-5qw5-wf2q-f538
GHSA-5qw5-wf2q-f538 is a security vulnerability in activerecord-jdbc-adapter. A fix is available for activerecord-jdbc-adapter — see the affected versions and patch details below.
Real-World Exposure
activerecord-jdbc-adapterReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects RubyGems packages — download data is not available via public APIs for these ecosystems.
Description
ActiveRecord-JDBC-Adapter (AR-JDBC) contains a flaw that may allow carrying out an SQL injection attack. The issue is due to the sql.gsub() function in lib/arjdbc/jdbc/adapter.rb not properly sanitizing user-supplied input before using it in SQL queries. This may allow a remote attacker to inject or manipulate SQL queries in the back-end database, allowing for the manipulation or disclosure of arbitrary data.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 💎RubyGems | activerecord-jdbc-adapter | all versions | 1.2.8bundle update activerecord-jdbc-adapter --conservative |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for activerecord-jdbc-adapter, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update activerecord-jdbc-adapter to 1.2.8 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-5qw5-wf2q-f538 is resolved across your whole dependency graph.
Workarounds
Until you can upgrade, make sure every query built from user input uses parameterised statements or a prepared-statement API rather than string concatenation, and reduce the database account's privileges so an injected query cannot read or alter data beyond what the feature needs.
Frequently Asked Questions
Is GHSA-5qw5-wf2q-f538 in your dependencies?
Find it across RubyGems, including transitive dependencies.