Bueno, ayer se han publicado los parches para este mes de Microsoft y mas alla del parche que arregla un problema en la implementacion del protocolo TCP que varios, no solo MS, tuvieron que salir a subsanar, lo mas interesante esta semana sin duda fue el BSoD publicado el lunes que afecta a Windows Vista y Windows 7.
El advisory de MS aqui.
El bug esta en el header de SMB, v2, de la nueva implementacion que nos provee MS a partir de Windows Vista.
La funcion vulnerable es _Smb2ValidateProviderCallback() que mediante un dereferenced call nos permite controlar un short proveniente de un array. El campo problematico es el Process ID High del header de SMB en el SMB_NEGOTIATE:
SMB_Header
{
UCHAR Protocol[4];
UCHAR Command;
SMB_ERROR Status;
UCHAR Flags;
USHORT Flags2;
USHORT PIDHigh; // este es el problema cuando se le pasa "&"
UCHAR SecurityFeatures[8];
USHORT Reserved;
USHORT TID;
USHORT PIDLow;
USHORT UID;
USHORT MID;
}
Ya hay un PoC publico para demostrar el fallo aqui.
Para mas informacion pueden visitar las siguientes paginas:
1- http://blog.48bits.com/?p=510#comments
2- http://reversemode.com/
3- http://www.securityfocus.com/bid/36299/
Solo como comentario les digo que he probado el PoC en un Windows 7 Ultimate x64 RTM y no ha pasado nada, el SMB_NEGOTIATE se hace efectivamente con el "&" en el campo PIDHigh, pero no hay BSoD, el SMB_NEGOTIATE Response llega.
UPDATE1:
Metasploit acaba de sacar un exploit (no PoC) para esta vuln.
http://metasploit.com/svn/framework3/trunk/modules/exploits/windows/smb/smb2_negotiate_func_index.rb
Saludos.