Pular para o conteúdo principal

.NET 8 e .NET 9 saíram de suporte no dia do maior Patch Tuesday da história

Na terça-feira, 10 de novembro, aconteceram duas coisas que parecem notícias separadas e que, na minha opinião, são a mesma história. O .NET 8 e o .NET 9 saíram de suporte. E a Microsoft publicou, no mesmo dia, o Patch Tuesday mais volumoso que eu já vi: algo perto de 1.100 correções de segurança, dependendo de quem faz a contagem.

O que aconteceu

O calendário já estava anunciado desde junho. Em 10 de novembro de 2026, .NET 8 (LTS) e .NET 9 (STS) deixaram de receber correções de segurança e suporte técnico. O .NET 9 acabou junto com o 8 porque o ciclo de suporte das versões STS foi esticado de 18 para 24 meses, e a conta fechou na mesma data. A recomendação oficial é migrar para o .NET 10, que é LTS e tem suporte até novembro de 2028. A aplicação continua rodando, ninguém vai desligar nada, mas o que for descoberto daqui para frente não será corrigido para essas versões.

Já o Patch Tuesday trouxe, segundo o Krebs on Security, 1.093 vulnerabilidades corrigidas, com 63 críticas e uma explorada ativamente: uma falha de spoofing no Outlook (CVE-2026-124194). Outros veículos contaram 1.094, 1.095 ou até 1.235, porque cada um decide de um jeito o que entra na conta (produtos próprios, componentes de terceiros, falhas em serviços de nuvem). O que importa é a ordem de grandeza. Há um ano, a média mensal era de cerca de 100 correções. Em outubro foram mais de 1.400, e o acumulado de 2026 já passa de 5.100. A própria Microsoft atribui esse salto à evolução da inteligência artificial na busca por falhas.

Por que isso importa para quem trabalha com tecnologia

Durante anos, "atualizar a versão do framework" era uma tarefa que ficava no backlog com etiqueta de dívida técnica e prioridade baixa. O argumento era razoável: se funciona, não mexe. Só que esse argumento pressupõe que o ritmo de descoberta de falhas é lento e previsível. Quando o volume de vulnerabilidades publicadas multiplica por dez em um ano, rodar uma versão sem suporte deixa de ser um risco abstrato e vira uma janela que fica aberta e visível para qualquer um que leia os boletins.

Tem também o lado menos glamouroso da coisa: muita gente não escolhe a versão. Quem trabalha com sistemas corporativos sabe que existe aquela aplicação em .NET 8 que roda em um servidor gerenciado por outro time, num contrato com um fornecedor que "ainda vai avaliar a migração". Para esse cenário, a orientação da Microsoft é direta: cobre do fornecedor uma versão atualizada. E se você usa o Visual Studio 2022, uma próxima atualização vai marcar os componentes do .NET 8 e do 9 como fora de suporte, então vale conferir as configurações do instalador antes de ser surpreendido.

Um número do Chris Goettl, da Ivanti, ajuda a pôr tudo em perspectiva: de cerca de 95 mil CVEs atribuídos em 2026, só 217 entraram na lista de vulnerabilidades exploradas da CISA. Ou seja, a esmagadora maioria das falhas nunca vira ataque. Mas ninguém sabe de antemão qual será a próxima das 217, e é aí que um framework sem correções pesa mais do que um sistema operacional atualizado.

Minha leitura

Eu acho que estamos entrando numa fase em que o ciclo de vida do software passa a ser uma decisão de arquitetura, e não uma nota de rodapé. Quando as falhas eram descobertas aos poucos, dava para viver uma versão atrás sem muita ansiedade. Com a descoberta acelerada, o tempo entre "falha conhecida" e "falha explorada" encolhe, e a vantagem de estar numa versão mantida cresce na mesma proporção.

Também não vale o pânico. Migrar do .NET 8 para o 10 costuma ser, na maioria dos projetos, uma troca de TargetFramework, uma bateria de testes e a leitura atenta das mudanças que quebram compatibilidade. O que dá trabalho de verdade são as dependências antigas, os pipelines fixados em imagens de contêiner específicas e os ambientes de hospedagem que ninguém atualiza há dois anos. Se você ainda não fez o inventário de quais serviços rodam em qual versão, esta semana é um bom momento para começar. Uma planilha simples, com nome do serviço, versão e responsável, já resolve metade do problema.

E uma observação de carreira: quem dominar migração de versão com segurança, sem derrubar produção, vai ter trabalho de sobra pelos próximos meses. Não é a parte mais empolgante da profissão, mas é a que sustenta o resto.

Fontes:

Comentários

Mais visitadas

Como pegar valor de coluna invisível do GridView

Em determinado momento nos deparamos com a seguinte situação, nossa tabela do banco de dados possui como campo chave, um ID por exemplo, incrementado por uma rotina da aplicação, do banco ou algum outro mecanismo de incremento (sequences, increment, etc), logo não há porque mostrar essa coluna para o usuário porque o mesmo não sabe de sua existência, e seu valor não tem qualquer relevância para ele, sendo assim o mais lógico a se fazer é não mostra-lá na aplicação. Seu valor é necessário já que por se tratar de uma chave primária precisaremos dela para atualizar, inserir ou excluir os dados, então o que fazer? A resposta seria simples, deixemos ele invisível, buscaremos seu valor e o usuário não perceberá, porém a partir da versão 2005 do visual Studio as colunas setadas com "visible = false" não são renderizadas, com isso ao se tentar acessar seu valor o que recebemos é nada. Para contornarmos essa situação podemos codificar o seguinte: protected void GridView1_R...

Lista de políticos com ficha suja

ATUALIZAÇÃO (08/03/2012 ano de eleição) Representantes de duas pessoas da lista (Eliseu Padilha e Alex Canziani) entraram em contato e pediram que esses fossem removidos, alegando que não houve condenação. É justo essa requisição, porém vale lembrar que escândalos nacionalmente reconhecidos de corrupção não deram em nada, por isso o que realmente conta nesse ano de eleição é uma pesquisa minuciosa sobre os candidatos escolhidos, eu particularmente, por não estar nem um pouco satisfeito, não irei votar em ninguém que já tenha sido eleito. Estou voltando a postar por um motivo nobre, meu tempo continua apertado mas esse post é rápido, na verdade nem meu ele é (visitem o espaço de nosso amigo Lord ), estou apenas repassando essa valiosa informação. Teremos eleição esse ano, e é importante não repetirmos erros passados, vamos ficar atentos em relação a esses nomes e exclui-los de vez do cenário politico nacional. Façamos nossa parte, publicando em nossos blog...

Iniciar e Parar Serviços do Windows (Delphi)

Em certas ocasiões nos deparamos com a necessidade de manipular determinadas atividades do SO, como iniciar ou parar um banco de dados, ou qualquer outro serviço que esteja funcionando no momento. Segue abaixo um código que encontrei na Internet para tal finalidade (não me recordo à fonte, assim que eu a encontrar colocarei). Iniciar Serviço: uses WinSvc; // // start service // // return TRUE if successful // // sMachine: //   machine name, ie: \SERVER //   empty = local machine // // sService //   service name, ie: Alerter // function ServiceStart(   sMachine,   sService : string ) : boolean; var   //   // service control   // manager handle   schm,   //   // service handle   schs   : SC_Handle;   //   // service status   ss     : TServiceStatus;   //   // te...