TMAegis
More rules for mysql

MySQL

TMA-MYSQL-7.4

Set 'default_password_lifetime' to Require a Yearly Password Change

MediumLevel 1Automatedmysql

Description

Password expiry provides passwords with a time bounded lifetime. Passes when default_password_lifetime is between 1 and 365 days. 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 IF(@@global.default_password_lifetime BETWEEN 1 AND 365, 'compliant', 'noncompliant')" 2>/dev/null) || exit 1; printf '%s\n' "$out"
Expected output
compliant

How it is fixed

Fix method: SQL statement

shell
mysql -e "SET PERSIST default_password_lifetime = 365"

Properties

Operating systems
Any
Tags
mysqldatabaseauthenticationpassword
Reference
CIS Oracle MySQL Community Server 8.4 Benchmark v1.1.0 - 7.4 Set 'default_password_lifetime' to Require a Yearly Password Change

Check this host

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

shell
tmaegis scan --target mysql