TMA-MYSQL-7.2
Ensure Passwords are Not Stored in the Global Configuration
HighLevel 1Automatedmysql
Description
The [client] section of the MySQL configuration file allows setting a user and password to be used. Verify the password option is not used in the global configuration file (my.cnf). Reads the [client] groups of /etc/my.cnf and /etc/mysql/my.cnf (including !include files) with my_print_defaults; per-user ~/.my.cnf files are not global and are ignored.
How it is checked
Audit method: Shell command
shell
n=0; found=0; for c in /etc/my.cnf /etc/mysql/my.cnf; do [ -f "$c" ] || continue; found=1; o=$(my_print_defaults --defaults-file="$c" client 2>/dev/null) || exit 1; n=$((n + $(printf '%s\n' "$o" | grep -c '^--password'))); done; [ "$found" -eq 1 ] || exit 1; echo "$n"- Expected output
0
How it is fixed
Fix method: Guidance or infrastructure patch
Remove password= from the [client] section of the global option files; use mysql_config_editor (~/.mylogin.cnf) or a per-user ~/.my.cnf with mode 0600 instead.
Properties
- Operating systems
- Any
- Tags
- mysqldatabasecredentials
- Reference
- CIS Oracle MySQL Community Server 8.4 Benchmark v1.1.0 - 7.2 Ensure Passwords are Not Stored in the Global Configuration
Check this host
Run this on a machine you are allowed to audit. The scan is read-only.
shell
tmaegis scan --target mysql