Se han descubierto diversas vulnerabilidades en Microsoft SQL Server 7.0
y 2000 que pueden permitir a un atacante ejecutar código arbitrario en
el servidor SQL, en el contexto de la cuenta bajo la que se ejecute el
servidor SQL, que habitualmente es la de Administrador.
SQL Server proporciona funciones para definir el formato de los mensajes
de error basadas en C. Estas funciones están accesibles a todos los
usuarios. Pero si se proporciona una entrada maliciosamente creada a
estas funciones se puede provocar una condición de error explotable en
SQL Server. Para construir este ataque el atacante deberá tener permisos
para ejecutar consultas SQL bien directamente o bien mediante la
inyección de comandos SQL a través de otros fallos.
La función raiserror() es accesible para todos los usuarios, y permite
la especificación de un parámetro demasiado largo. Esto produce el
desbordamiento de búfer. De forma adicional se pueden emplear
especificadores de formato de cadena, lo que permitirá al atacante
sobreescribir una dirección arbitraria de memoria, y de esta forma
lograr la ejecución del código deseado.
La función formatmessage() también es accesible para todos los usuarios.
Mediante la creación de mensajes especialmente modificados cualquier
usuario podrá posteriormente hacer que se ejecute el código contenido en
el mensaje.
El procedimiento almacenado extendido xp_sprintf (accesible para
‘public’ por defecto) permite la especificación de parámetros demasiado
extensos, lo que provoca el consiguiente desbordamiento de búfer
explotable.
Microsoft ha publicado parches para evitar este problema, que se pueden
descargar de las siguientes direcciones:
SQL Server 7.0:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=34131
SQL Server 2000:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=34131
Más información:
@stake Security Advisory:
http://www.atstake.com/research/advisories/2001/a122001-1.txt
Boletín de seguridad Microsoft MS01-060:
http://www.microsoft.com/technet/security/bulletin/MS01-060.asp
antonior@hispasec.com
Deja una respuesta