TMAegis
More rules for tdsql

TMA-TDSQL-4.1

Ensure `local_infile` Is Disabled

HighLevel 1Automatedtdsql

Description

The local_infile parameter controls whether clients are allowed to use the LOAD DATA LOCAL INFILE statement. Enabling this feature can be abused by an attacker to read arbitrary files on the client host through carefully crafted SQL statements. Runs the mysql client against the TDSQL data node selected by TDSQL_MYSQL_OPTS (e.g. "-h10.0.0.5 -P4001 -utdsql_audit"); keep the password in ~/.my.cnf or a login path rather than MYSQL_PWD or the command line (see 1.4 and 1.5).

How it is checked

Audit method: SQL query

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

How it is fixed

Fix method: Guidance or infrastructure patch

Set the instance parameter local_infile = OFF through the TDSQL management platform (OSS) or SET GLOBAL local_infile = OFF; and persist it in the parameter template.

Properties

Operating systems
Any
Tags
tdsqlhardening
Reference
CIS Tencent TDSQL 10.3.22 Benchmark v1.0.0 - 4.1 Ensure `local_infile` Is Disabled

Check this host

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

shell
tmaegis scan --target tdsql