TMAegis
More rules for mysql

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