Microsoft SQL Server, el conocido servidor de bases de datos de Microsoft, contiene múltiples vulnerabilidades de desbordamiento de búfer que pueden ser empleadas para lograr la ejecución de código de forma remota en la máquina atacada.
Los procedimientos almacenados extendidos (Extended Stored Procedures, XPs) son DLLs que pueden ser instaladas por el administrador de SQL Server para proporcionar mayores funcionalidades. El problema radica en srv_paraminfo(), la API de SQL Server empleada para comprobar los parámetros de entrada para los XPs, ya que no proporciona ningún medio para indicar al procedimiento la longitud necesaria del búfer. Y como no todos los procedimientos incluidos en SQL Server son capaces de realizar esa comprobación, un usuario malicioso podrá proporcionar un parámetro demasiado largo a un XP afectado para lograr el desbordamiento de búfer.
Los procedimientos almacenados extendidos pueden ser ejecutados por cualquier componente cliente que pueda realizar una consulta SQL, como Microsoft Access, o MSQuery o la utilidad ISQL incluida en SQL Server. La sintaxis para ejecutar un procedimiento almacenado es como sigue:
exec
Cuando se proporciona un par metro con una cadena demasiado larga a moltiples de estos procedimientos el bofer se desbordar . Lo m s curioso es que estos desbordamientos se producen en la parte de las llamadas al manejo de excepciones que SQL Server realiza para protegerse a si mismo.
Los procedimientos vulnerables son moltiples, entre los afectados se encuentran los siguientes xp_displayparamstmt, xp_enumresultset, xp_showcolv y xp_updatecolvbm. El problema se agrava al tener en cuenta que cada uno de estos procedimientos pueden ser ejecutados por PUBLIC, esto es, cualquiera que pueda conectar con el servidor de bases de datos, incluso con los privilegios m s bajos. Pero por el contrario si el desbordamiento se llega a producir y un atacante lo emplea para lograr la ejecuci¢n de c¢digo lo realizar bajo el contexto de la cuenta SYSTEM, es decir con todos los privilegios.
Microsoft ha publicado un bolet¡n en el que informa de este problema y proporciona a los usuarios un parche para su soluci¢n. Como recomendaci¢n tambi’n se puede proceder a inhabilitar a la cuenta PUBLIC el acceso de ejecuci¢n a los procedimientos almacenados extendidos.
El parche proporcionado por Microsoft se puede encontrar en la siguiente URL:
http://support.microsoft.com/support/sql/xp_security.asp
Opina sobre esta noticia:
http://www.hispasec.com/unaaldiacom.asp?id=774
M s informaci¢n:
Bolet¡n de Seguridad de Microsoft (MS00-092)
http://www.microsoft.com/technet/security/bulletin/ms00-092.asp
Preguntas y respuestas acerca de la vulnerabilidad
http://www.microsoft.com/technet/security/bulletin/fq00-092.asp
Avisos de seguridad de @Stake
http://www.atstake.com/research/advisories/2000/a120100-1.txt
http://www.atstake.com/research/advisories/2000/a120100-2.txt
Antonio Ropero
antonior@hispasec.com
http://www.hispasec.com