TMAegis
More rules for mysql

TMA-MYSQL-4.4

Harden Usage for 'local_infile' on MySQL Clients

MediumLevel 1Automatedmysql

Description

The local_infile parameter dictates whether files located on the MySQL client's computer can be loaded or selected via LOAD DATA INFILE or SELECT local_file. Checks the server-side branch of the benchmark (local_infile = 0); if LOAD DATA LOCAL is required, use clients 8.0.21+ with --load-data-local-dir and accept the finding as an exception. Runs mysql -NBe with the client defaults: put an administrative account in ~/.my.cnf (mode 0600) or a mysql_config_editor login path, not MYSQL_PWD (see 1.4/1.6).

How it is checked

Audit method: SQL query

sql_query
out=$(mysql -NBe "SELECT IF(@@global.local_infile = 0, 'compliant', 'noncompliant')" 2>/dev/null) || exit 1; printf '%s\n' "$out"
Expected output
compliant

How it is fixed

Fix method: SQL statement

shell
mysql -e "SET PERSIST local_infile = 0"

Properties

Operating systems
Any
Tags
mysqldatabaseconfiguration
Reference
CIS Oracle MySQL Community Server 8.4 Benchmark v1.1.0 - 4.4 Harden Usage for 'local_infile' on MySQL Clients

Check this host

Run this on a machine you are allowed to audit. The scan is read-only.

shell
tmaegis scan --target mysql