CVE-2020-7981
SQL Injection in Geocoder
sql.rb in Geocoder before 1.6.1 allows Boolean-based SQL injection when within_bounding_box is used in conjunction with untrusted sw_lat, sw_lng, ne_lat, or ne_lng data.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
9.8
sql.rb in Geocoder before 1.6.1 allows Boolean-based SQL injection when within_bounding_box is used in conjunction with untrusted sw_lat, sw_lng, ne_lat, or ne_lng data.
- Record
CVE-2020-7981- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - CVSS 2.0
- 7.5 High
AV:N/AC:L/Au:N/C:P/I:P/A:P - Weakness
- CWE-89
- Updated
- 2026-11-02
CVE List No score
sql.rb in Geocoder before 1.6.1 allows Boolean-based SQL injection when within_bounding_box is used in conjunction with untrusted sw_lat, sw_lng, ne_lat, or ne_lng data.
- Record
CVE-2020-7981- Updated
- 2026-11-02
EUVDEUVD-2020-0472 No score
sql.rb in Geocoder before 1.6.1 allows Boolean-based SQL injection when within_bounding_box is used in conjunction with untrusted sw_lat, sw_lng, ne_lat, or ne_lng data.
- Record
EUVD-2020-0472- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-864j-6qpp-cmrr
9.8
SQL Injection in Geocoder
sql.rb in Geocoder before 1.6.1 allows Boolean-based SQL injection when within_bounding_box is used in conjunction with untrusted sw_lat, sw_lng, ne_lat, or ne_lng data.
- Record
GHSA-864j-6qpp-cmrr- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-89
- Updated
- 2026-11-02
OSV
9.8
sql.rb in Geocoder before 1.6.1 allows Boolean-based SQL injection when within_bounding_box is used in conjunction with untrusted sw_lat, sw_lng, ne_lat, or ne_lng data.
- Record
CVE-2020-7981- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVDEBIAN-CVE-2020-7981
9.8
sql.rb in Geocoder before 1.6.1 allows Boolean-based SQL injection when within_bounding_box is used in conjunction with untrusted sw_lat, sw_lng, ne_lat, or ne_lng data.
- Record
DEBIAN-CVE-2020-7981- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVGHSA-864j-6qpp-cmrr
9.8
SQL Injection in Geocoder
sql.rb in Geocoder before 1.6.1 allows Boolean-based SQL injection when within_bounding_box is used in conjunction with untrusted sw_lat, sw_lng, ne_lat, or ne_lng data.
- Record
GHSA-864j-6qpp-cmrr- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-89
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2020-7981
9.8
sql.rb in Geocoder before 1.6.1 allows Boolean-based SQL injection when within_bounding_box is used in conjunction with untrusted sw_lat, sw_lng, ne_lat, or ne_lng data.
- Record
UBUNTU-CVE-2020-7981- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
geocoderRubyGems |
before 1.6.1 | 1.6.1 |
ruby-geocoderDebian:12 |
before 1.5.1-3 | 1.5.1-3 |
ruby-geocoderDebian:13 |
before 1.5.1-3 | 1.5.1-3 |
ruby-geocoderDebian:14 |
before 1.5.1-3 | 1.5.1-3 |
geocoderRubyGems |
before 1.6.1, plus listed versions 0.1.00.1.10.9.100.9.110.9.12 Show 45 moreShow less0.9.130.9.80.9.91.0.01.0.11.0.21.0.31.0.41.0.51.1.01.1.11.1.21.1.31.1.41.1.51.1.61.1.71.1.81.1.91.2.01.2.11.2.101.2.111.2.121.2.131.2.141.2.21.2.31.2.41.2.51.2.61.2.71.2.81.2.91.3.01.3.11.3.21.3.31.3.41.3.51.3.61.3.71.4.01.4.11.4.2 |
1.6.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2020-7981 is a critical vulnerability (CVSS 9.8) in Rubygeocoder Geocoder, published January 25, 2020. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.48%, the 74th percentile. Fixed in geocoder 1.6.1.
References
github.com/alexreisner/geocoder/commit/dcdc3d8675411edce3965941a2ca7c441ca48613
github.com/alexreisner/geocoder/compare/v1.6.0...v1.6.1
nvd.nist.gov/vuln/detail/CVE-2020-7981
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-7981
github.com/rubysec/ruby-advisory-db/blob/master/gems/geocoder/CVE-2020-7981.yml
github.com/alexreisner/geocoder/blob/master/CHANGELOG.md
Left out here: 11 versions. The JSON record has them.