9.1crit

CVE-2016-8640

SQL Injection in pycsw

Also known as GHSA-hg4c-rgvm-964g, PYSEC-2018-98

Published 8 y ago · modified 4 mo ago · JSON

CVSS
9.1
v3.0 · NVD
CISA KEV
No
not known exploited
EPSS
2.3%
percentile 83%
Public exploits
0
none known

Summary

A SQL injection vulnerability in pycsw all versions before 2.0.2, 1.10.5 and 1.8.6 that leads to read and extract of any data from any table in the pycsw database that the database user has access to. Also on PostgreSQL (at least) it is possible to perform updates/inserts/deletes and database modifications to any table the database user has access to.

Exploit prediction (EPSS)

2.31% probability of exploitation in the next 30 days, higher than 83% of all scored CVEs.

CVSS scores

Assigned byVersionScoreVector
NVD3.09.1CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
NVD2.07.5AV:N/AC:L/Au:N/C:P/I:P/A:P
GitHub3.09.1CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N

Affected packages

EcosystemPackageAffectedFixed in
pypipycsw
>=2.0.0, <2.0.2
<1.8.6
>=1.10.0, <1.10.5
2.0.2
1.8.6
1.10.5

Affected products

  • https://github.com/geopython pycsw

Classification

Weakness
  • CWE-89 Improper Neutralization of Special Elements used in an SQL Command

References

  • securityfocus.com /bid/94302 · vdb-entry, x_refsource_BID, x_transferred
  • github.com /geopython/pycsw/pull/474/files · x_refsource_CONFIRM, x_transferred
  • seclists.org /oss-sec/2016/q4/406 · mailing-list, x_refsource_MLIST, x_transferred
  • patch-diff.githubusercontent.com /raw/geopython/pycsw/pull/474.patch · x_refsource_CONFIRM, x_transferred
  • nvd.nist.gov /vuln/detail/CVE-2016-8640 · advisory
  • github.com /geopython/pycsw/commit/522873e5ce48bb9cbd4e7e8168ca881ce709c222 · web
  • github.com /geopython/pycsw/commit/69546e13527c82e4f9191769215490381ad511b2 · web
  • github.com /geopython/pycsw/commit/daaf09b4b920708a415be3c7f446739661ba3753 · web
  • github.com /advisories/GHSA-hg4c-rgvm-964g · advisory
  • github.com /geopython/pycsw · package
  • github.com /pypa/advisory-database/tree/main/vulns/pycsw/PYSEC-2018-98.yaml · web

Sources

vulnwire keeps one entry per vulnerability: the CVE id wins, then GHSA; records that alias each other are merged. Machine-readable: JSON.