Information
Its critical to limit users ability to set and effective authorization ID that is used with executing a view or stored program. This grant provides a method to escalate privileges within MySQL views and procedures. A user with this privilege can specify any account as the DEFINER attribute for CREATE PROCEDURE CREATE FUNCTION CREATE TRIGGER CREATE EVENT ALTER EVENT CREATE VIEW and ALTER VIEW Without this privilege, only the effective authentication ID can be specified.
Enabling a user to create a view, stored procedure or function that improperly escalates privileges may provide unintended access rights which can be improperly used.
Side Note: The previous versions of MySQL users required a grant to SET_USER_ID privilege to create procedures with DEFINER set.
NOTE: Nessus has provided the target output to assist in reviewing the benchmark to ensure target compliance.
Solution
Perform the following steps to remediate this setting:
- Enumerate the non-administrative users found in the result set of the audit procedure
- For each user, issue the following SQL statement (replace with the non-administrative user): REVOKE SET_ANY_DEFINER ON *.* FROM '<user>';