MariaDB Connector/J does not enforce allowLocalInfile=false on server-initiated LOCAL INFILE requests
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 2.7.14, 3.3.5, 3.4.3, 3.5.9
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
MariaDB Connector/J is used to connect applications developed in Java to MariaDB and MySQL databases. Prior to 2.7.14, 3.3.5, 3.4.3, and 3.5.9, ClientMessage.readPacket processes a server-initiated LOCAL INFILE protocol packet 0xfb without enforcing allowLocalInfile=false. When an application sends a LOAD DATA LOCAL INFILE COM_QUERY, a rogue or man-in-the-middle server can echo the same filename and cause the connector to transmit that file despite the disabled option. The server cannot redirect the request to an arbitrary path and can receive only the exact file already selected by the application, so exploitation requires an application that actively loads sensitive data over an untrusted connection. This issue is fixed in versions 2.7.14, 3.3.5, 3.4.3, and 3.5.9.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- mariadb-corporation mariadb-connector-j
fixed in 2.7.14; From 3.0.0 · fixed in 3.3.5; From 3.4.0 · fixed in 3.4.3; From 3.5.0 · fixed in 3.5.9
- org.mariadb.jdbc:mariadb-java-clientMaven
fixed in 2.7.14
- org.mariadb.jdbc:mariadb-java-clientMaven
From 3.0.0 · fixed in 3.3.5
- org.mariadb.jdbc:mariadb-java-clientMaven
From 3.4.0 · fixed in 3.4.3
- org.mariadb.jdbc:mariadb-java-clientMaven
From 3.5.0 · fixed in 3.5.9