Nos últimos dias de 2011, a Microsoft lançou um comunicado e, posteriormente, a correção de uma vulnerabilidade presente em todas versões do ASP.NET que poderia permitir ataques do tipo Denial of Service (DoS), ou negação de serviço. Essa vulnerabilidade permitia que uma requisição HTTP especialmente montada consumisse 100% da CPU durante um período de tempo, fazendo com que repetidas requisições degradassem a performance da aplicação, causando a indisponibilidade do serviço.

A causa da vulnerabilidade está na forma como o ASP.NET mapeia os valores de campos de formulários recebidos em um POST HTTP para estruturas do tipo hash tables, que poderia causar problemas de colisões de chaves hash. A correção disponibilizada pela Microsoft limita a 1.000 o número de campos de formulários que uma aplicação ASP.NET pode receber. Se a requisição possuir mais de 1.000 campos de formulários, ocorrerá um erro. Esse número máximo pode ser alterado através da propriedade MaxHttpCollectionKeys, a ser configurada no web.config. A recomendação é que a atualização seja aplicada o mais rápido possível. É interessante notar que esse problema não é exclusividade do ASP.NET. Outros frameworks web e linguagens como PHP, Java, Phyton e Ruby também estão sucetíveis a esse tipo de ataque. Mais informações nos links abaixo: