Importante: Vulnerabilidad en ASP.NET (todas las versiones)

Quienes me siguen en twitter (twitter.com/gabo) se habrán enterado sobre la vulnerabilidad en ASP.NET que me hizo decir algunas maldiciones en días pasados. Es una vulnerabilidad importante que Microsoft comentó en un Security Advisory y se trata básicamente de que un atacante pueda hacer peticiones al servidor web y verificando los mensajes de error que este arroje, descifrar el contenido de algunos archivos que no están expuestos por default por IIS, como el archivo web.config, donde algunos almacenan por ejemplo información de conexión a servidores SQL Server y algunos otros (malamente) también usuarios y passwords.


¿Qué hay que hacer? Afortunadamente Microsoft ha lanzado ya actualizaciones por Windows Update, si no lo has hecho o por alguna razón no lo puedes ejecutar, aquí lo puedes descargar directamente:


Windows Server 2008 R2 and Windows 7

 

.NET Framework Version

KB Article

Patch

.NET Framework 3.5.1 (Default install)

KB2416471

Download

.NET Framework 4

KB2416472

Download


 


Windows Server 2008 SP2, Windows Vista SP2

 

.NET Framework Version

KB Article

Patch

.NET Framework 2.0 SP2 (default install)

KB2416470

Download

.NET Framework 4

KB2416472

Download

.NET Framework 3.5 SP1

KB2416470, KB2416473

Download, Download*

.NET Framework 3.5

KB2416470, KB2418240

Download, Download*

.NET Framework 1.1 SP1

KB2416447

Download


*Si se listan varias descargas sobre una versión de .NET (por ejemplo en .NET 3.5 SP1 y .NET 3.5) entonces todos los parches deben ser instalados (sin importar el orden).


Windows Server 2008, Windows Vista SP1

 

.NET Framework Version

KB Article

Patch

.NET Framework 2.0 SP1 (default install)

KB2416469

Download

.NET Framework 4

KB2416472

Download

.NET Framework 3.5 SP1

KB2416474, KB2416473

Download, Download*

.NET Framework 2.0 SP2

KB2416474

Download

.NET Framework 3.5

KB2416469, KB2418240

Download, Download*

.NET Framework 1.1 SP1

KB2416447

Download


*Si se listan varias descargas sobre una versión de .NET (por ejemplo en .NET 3.5 SP1 y .NET 3.5) entonces todos los parches deben ser instalados (sin importar el orden).


Windows Server 2003 SP2 32-bit

 

.NET Framework Version

KB Article

Patch

.NET Framework 1.1 SP1 (default install)

KB2416451

Download

.NET Framework 4

KB2416472

Download

.NET Framework 3.5 SP1

KB2418241, KB2416473

Download, Download*

.NET Framework 2.0 SP2

KB2418241

Download

.NET Framework 3.5

KB2416468, KB2418240

Download, Download*


*Si se listan varias descargas sobre una versión de .NET (por ejemplo en .NET 3.5 SP1 y .NET 3.5) entonces todos los parches deben ser instalados (sin importar el orden).



Windows Server 2003 64-bit

 

.NET Framework Version/SP

KB Article

Patch

Default OS Configuration

NA

NA

.NET Framework 4

KB2416472

Download

.NET Framework 3.5 SP1

KB2418241, KB2416473

Download, Download*

.NET Framework 2.0 SP2

KB2418241

Download

.NET Framework 3.5

KB2416468, KB2418240

Download, Download*

.NET Framework 1.1 SP1

KB2416447

Download


*Si se listan varias descargas sobre una versión de .NET (por ejemplo en .NET 3.5 SP1 y .NET 3.5) entonces todos los parches deben ser instalados (sin importar el orden).



Windows XP SP3 32-bit and 64-bit

 

.NET Framework Version/SP

KB Article

Patch

Default OS Configuration

NA

NA

.NET Framework 4

KB2416472

Download

.NET Framework 3.5 SP1

KB2418241, KB2416473

Download, Download*

.NET Framework 2.0 SP2

KB2418241

Download

.NET Framework 3.5

KB2416468, KB2418240

Download, Download*

.NET Framework 1.1 SP1

KB2416447

Download


*Si se listan varias descargas sobre una versión de .NET (por ejemplo en .NET 3.5 SP1 y .NET 3.5) entonces todos los parches deben ser instalados (sin importar el orden).


Consideraciones


Fue muy hábil el equipo de expertos que descubrió esta vulnerabilidad, y fue una bastante importante pues afectaba todas las versiones de ASP.NET, pero afortunadamente la respuesta de Microsoft fue casi inmediata con la publicación de un workaround que evitaba ser expuestos por esta. Lo más importante es que si mantienes un sitio ASP.NET te asegures no caer en prácticas comunes y poco confiables como dejar los usuarios y contraseñas en texto plano en ningún archivo del sitio web. Velo así, es una carpeta expuesta a la internet para todos, aún con restricciones de IIS ¿dejarías la contraseña de tu coreo electrónico en un archivo .PPTX expuesto? Sólo es cuestión de sentido común.


Con información de los posts de ScottGu: