TMA-MYSQL-9.3
Ensure 'super_priv' is Not Set to 'Y' for Replication Users
Description
The SUPER privilege found in the mysql.user table governs the use of a variety of MySQL features. These features include, CHANGE MASTER TO, KILL, mysqladmin kill option, PURGE BINARY LOGS, SET GLOBAL, mysqladmin debug option, logging control, and more. Treats every account other than root holding REPLICATION SLAVE as a replication user and counts those that also hold SUPER. 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
out=$(mysql -NBe "SELECT COUNT(*) FROM mysql.user WHERE Repl_slave_priv = 'Y' AND Super_priv = 'Y' AND user NOT IN ('root')" 2>/dev/null) || exit 1; printf '%s\n' "$out"- Expected output
0
How it is fixed
Fix method: Guidance or infrastructure patch
REVOKE SUPER ON *.* FROM '<repl user>'@'<host>'; (grant REPLICATION_SLAVE_ADMIN instead if MySQL Shell ReplicaSet administration needs it).
Properties
- Operating systems
- Any
- Tags
- mysqldatabasereplicationauthorization
- Reference
- CIS Oracle MySQL Community Server 8.4 Benchmark v1.1.0 - 9.3 Ensure 'super_priv' is Not Set to 'Y' for Replication Users
Check this host
Run this on a machine you are allowed to audit. The scan is read-only.
tmaegis scan --target mysql