The Microsoft SQL Server contains a vulnerability that allows remote attackers to execute arbitrary commands with system privileges.
The Microsoft SQL Server typically runs under a dedicated "service account" that is defined by system administrators at installation time. This definition is stored in the Windows registry with permissions that allow the SQL Server to change the value of the registry key. As a result, attackers with access to the "xp_regwrite" extended stored procedure can alter this registry key and cause the SQL Server to use the LocalSystem account as its service account. Upon rebooting the server host or restarting the SQL service, the SQL Server will run with the full administrative privileges of the LocalSystem account. This ability allows a remote attacker to submit SQL queries that can execute any command on the system with the privileges of the operating system.
As a precondition, this vulnerability requires the ability to modify the SQL service account registry key (for example, via the "xp_regwrite" extended stored procedure). Attackers must convince an administrator to grant this access, or they must obtain it by exploiting a second vulnerability.
This vulnerability allows attackers to weaken the security policy of the SQL Server by elevating its privileges and causing it to run in the LocalSystem security context. As a side effect, it increases the severity of vulnerabilities that allow attackers to gain the privileges of the SQL service account. In some cases, this may enable attackers to compromise the server host as well.
Apply a patch
This vulnerability was discovered by Bronek Kozicki and reported to the Bugtraq mailing list on April 18, 2002.