CVE-2019-14939: MySQL for Node.js LOAD DATA LOCAL INFILE information disclosure

CVE-2019-14939 · Severity: low · CVSS 3 · Published 2022-05-24

The mysql Node.js driver, used to connect web applications and services to MySQL databases, had the LOAD DATA LOCAL INFILE option enabled by default. This feature allows MySQL to read files from the client machine, and an attacker with database access could exploit this to extract sensitive files (such as configuration files or private keys) from the application server.

Technologies: mysql (npm). Vendors: npm.

Quick answers

Is CVE-2019-14939 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2019-14939 being exploited in the wild.
How severe is CVE-2019-14939?
Low severity, with a CVSS score of 3, published 24 May 2022.
Which products and versions are affected?
mysql (npm) SEMVER:introduced=2.17.1,fixed=2.18.0.
Is there a fix for CVE-2019-14939?
Yes. mysql (npm): upgrade to 2.18.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2019-14939 attacked?
It is attacked with local access or over the network.
Am I affected by CVE-2019-14939?
Check whether you run mysql (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • mysql (npm): upgrade to 2.18.0 or later
    npm install mysql@2.18.0

Technical details

The vulnerability is an information disclosure issue (CWE-200) in the mysql module for Node.js version 2.17.1. The LOAD DATA LOCAL INFILE SQL statement was enabled by default, permitting a malicious database server (or an attacker with database access) to read arbitrary files from the client system. An attacker with network access to the MySQL connection and the ability to interact with the database can trigger file reads. The vulnerability was patched in version 2.18.0 by disabling this option by default; applications requiring this functionality must now explicitly enable it.

Affected products

  • mysqljs mysql 2.17.1 through 2.17.x (fixed in 2.18.0)

Identifiers

  • CVE-2019-14939
  • GHSA-f982-mxwc-3mrx

Timeline

  • 2019-08-12: disclosed
  • 2022-05-24: advisory: GitHub Security Advisory GHSA-f982-mxwc-3mrx published
  • 2018: patched: Fixed in version 2.18.0 (commit 337e87a)

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.