TMAegisBeta
More rules for mysql

MySQL

TMA-MYSQL-7.6

Ensure No Users Have Wildcard Hostnames

MediumLevel 1Automatedmysql

Description

MySQL can make use of host wildcards when granting permissions to users on specific databases. For example, you may grant a given privilege to '<user>'@'%'. 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 COUNT(*) FROM mysql.user WHERE host = '%'" 2>/dev/null) || exit 1; printf '%s\n' "$out"
Expected output
0

How it is fixed

Fix method: Guidance or infrastructure patch

For each SELECT user, host FROM mysql.user WHERE host = '%' result: RENAME USER '<user>'@'%' TO '<user>'@'<specific host>'; or DROP USER.

Properties

Operating systems
Any
Tags
mysqldatabaseauthenticationnetwork
Reference
CIS Oracle MySQL Community Server 8.4 Benchmark v1.1.0 - 7.6 Ensure No Users Have Wildcard Hostnames

Check this host

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

shell
tmaegis scan --target mysql