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