{"id":"CVE-2020-7981","aliases":["DEBIAN-CVE-2020-7981","EUVD-2020-0472","GHSA-864j-6qpp-cmrr","UBUNTU-CVE-2020-7981"],"status":"published","title":"SQL Injection in Geocoder","description":"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.","severity":{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-09","score":0.01484,"percentile":0.74167,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-89"],"published":"2020-01-25T19:18:35Z","modified":"2026-10-26T12:02:33Z","fixes":[{"ecosystem":"RubyGems","package":"geocoder","fixed_in":["1.6.1"],"sources":["ghsa","osv"]},{"ecosystem":"Debian:12","package":"ruby-geocoder","fixed_in":["1.5.1-3"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"ruby-geocoder","fixed_in":["1.5.1-3"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"ruby-geocoder","fixed_in":["1.5.1-3"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"RubyGems","package":"geocoder","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.6.1"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"ruby-geocoder","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.5.1-3"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"ruby-geocoder","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.5.1-3"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"ruby-geocoder","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.5.1-3"}]}]},{"source":"osv","ecosystem":"RubyGems","package":"geocoder","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.6.1"}]}],"versions":["0.1.0","0.1.1","0.9.10","0.9.11","0.9.12","0.9.13","0.9.8","0.9.9","1.0.0","1.0.1","1.0.2","1.0.3","1.0.4","1.0.5","1.1.0","1.1.1","1.1.2","1.1.3","1.1.4","1.1.5","1.1.6","1.1.7","1.1.8","1.1.9","1.2.0","1.2.1","1.2.10","1.2.11","1.2.12","1.2.13","1.2.14","1.2.2","1.2.3","1.2.4","1.2.5","1.2.6","1.2.7","1.2.8","1.2.9","1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.4.0","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5","1.4.6","1.4.7","1.4.8","1.4.9","1.5.0","1.5.1","1.5.2","1.6.0"]}],"products":[{"vendor":"rubygeocoder","product":"geocoder"}],"references":[{"url":"https://github.com/alexreisner/geocoder/commit/dcdc3d8675411edce3965941a2ca7c441ca48613","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web","report"]},{"url":"https://github.com/alexreisner/geocoder/compare/v1.6.0...v1.6.1","tags":["x_refsource_MISC","x_transferred","Release Notes","Third Party Advisory","advisory","web","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-7981","tags":["advisory"]},{"url":"https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-7981","tags":["web"]},{"url":"https://github.com/rubysec/ruby-advisory-db/blob/master/gems/geocoder/CVE-2020-7981.yml","tags":["web"]},{"url":"https://github.com/alexreisner/geocoder/blob/master/CHANGELOG.md#161-2020-jan-23","tags":["web"]},{"url":"https://github.com/advisories/GHSA-864j-6qpp-cmrr"},{"url":"https://security-tracker.debian.org/tracker/CVE-2020-7981","tags":["advisory"]},{"url":"https://github.com/alexreisner/geocoder","tags":["package"]},{"url":"https://ubuntu.com/security/CVE-2020-7981","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-7981","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2020-7981","description":"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.","status":"published","published":"2020-01-25T19:18:35Z","modified":"2024-08-04T09:48:24.934Z","updated_at":"2026-11-02T14:35:58.331892Z"}],"euvd":[{"id":"EUVD-2020-0472","description":"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.","status":"published","published":"2020-01-25T19:18:35Z","modified":"2024-08-04T09:48:24Z","updated_at":"2026-11-03T03:07:58.506831Z"}],"ghsa":[{"id":"GHSA-864j-6qpp-cmrr","title":"SQL Injection in Geocoder","description":"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.","status":"published","published":"2020-06-10T20:03:02Z","modified":"2023-07-05T19:29:09Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-89"],"updated_at":"2026-11-02T14:36:55.91458Z"}],"nvd":[{"id":"CVE-2020-7981","description":"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.","status":"published","published":"2020-01-25T20:15:09.813Z","modified":"2026-06-17T03:25:44.11Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"},{"version":"2.0","score":7.5,"vector":"AV:N/AC:L/Au:N/C:P/I:P/A:P","level":"high","assessor":"primary"}],"cwes":["CWE-89"],"updated_at":"2026-11-02T14:05:52.385274Z"}],"osv":[{"id":"CVE-2020-7981","description":"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.","status":"published","published":"2020-01-25T20:15:09.813Z","modified":"2026-10-20T10:54:25.021099355Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:44:17.34531Z"},{"id":"DEBIAN-CVE-2020-7981","description":"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.","status":"published","published":"2020-01-25T20:15:09.813Z","modified":"2026-10-26T12:02:33.296751497Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:45:34.311861Z"},{"id":"GHSA-864j-6qpp-cmrr","title":"SQL Injection in Geocoder","description":"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.","status":"published","published":"2020-06-10T20:03:02Z","modified":"2024-02-16T08:10:34.444161Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-89"],"updated_at":"2026-11-02T15:46:41.732368Z"},{"id":"UBUNTU-CVE-2020-7981","description":"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.","status":"withdrawn","published":"2020-01-25T20:15:00Z","modified":"2025-07-17T16:55:26Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:54:25.728622Z"}]}}
