1 pontos por GN⁺ 2024-01-16 | 1 comentários | Compartilhar no WhatsApp
  • A KB5034441 para Windows 10 é uma atualização de segurança para bloquear uma vulnerabilidade de bypass do BitLocker, mas em alguns PCs ela falha durante a instalação
  • O ponto central do problema é a partição de recuperação do WinRE; o tamanho da partição em instalações padrão do Windows 10 pode ser insuficiente para processar a atualização
  • Quando a instalação falha, pode aparecer 0x80070643, mas a causa real pode ser uma falha de manutenção do ambiente de recuperação correspondente a CBS_E_INSUFFICIENT_DISK_SPACE
  • A solução temporária da Microsoft consiste em desativar o WinRE no Prompt de Comando como administrador e apagar e recriar a partição de recuperação, um procedimento arriscado para usuários comuns
  • Usuários reagiram dizendo que o procedimento é “técnico e assustador demais”, e cresce a insatisfação de que a Microsoft deveria lançar uma correção própria

Falha na instalação da KB5034441 e problema na partição de recuperação

  • Em 9 de janeiro de 2024, a Microsoft distribuiu a KB5034441 para Windows 10 21H2 e 22H2
    • O objetivo é bloquear uma vulnerabilidade que permite contornar a criptografia do BitLocker usando o Windows Recovery Environment, ou WinRE
  • Alguns usuários encontram o erro 0x80070643 durante a instalação da atualização
    • Esse código se parece mais com uma mensagem genérica de falha de instalação e, segundo a Microsoft, por causa de um “erro na rotina de tratamento do código de erro”, pode não indicar com precisão a causa real
  • A causa real pode ser falta de espaço na partição de recuperação
    • A mensagem de erro real apresentada pela Microsoft é Windows Recovery Environment servicing failed. (CBS_E_INSUFFICIENT_DISK_SPACE)
    • É possível que a partição de recuperação de PCs com instalação padrão do Windows 10 não seja grande o suficiente para processar essa atualização

Procedimento manual de contorno arriscado

  • A Microsoft orienta usuários com problema de espaço em disco a ajustar manualmente a partição de recuperação seguindo a KB5028997
    • É preciso abrir o Prompt de Comando com privilégios de administrador
    • Depois de desativar o WinRE, é necessário executar comandos para apagar e recriar a partição de recuperação
    • É um procedimento em que usuários sem familiaridade podem errar facilmente
  • Nas redes sociais, o problema vem ocorrendo amplamente, e o clima é de resistência dos usuários em aplicar o método de contorno da Microsoft
    • Alguns usuários descreveram o procedimento como “técnico e assustador demais”
    • Outros disseram que é um “problema que a Microsoft deveria corrigir diretamente”
    • Outro usuário disse que os usuários não precisam corrigir o erro da Microsoft e que, se adiarem a atualização, a Microsoft distribuirá uma correção no futuro
  • A Microsoft atualizou a documentação pública relacionada em 16 de janeiro
    • No entanto, o guia em si não foi alterado
    • A empresa afirmou que “está trabalhando em uma solução e fornecerá uma atualização em uma versão futura”

1 comentários

 
GN⁺ 2024-01-16
Comentários do Hacker News
  • Durante a instalação da atualização, alguns usuários estão vendo o erro 0x80070643 e, segundo a Microsoft, pode nem ser um erro de verdade por causa de “um erro na rotina de tratamento de códigos de erro”
    Ou seja, o código de erro do erro está mostrando errado o código de erro do erro por causa de um erro
    Fico me perguntando com que frequência mexem no código de tratamento de erros para ainda existir um bug desses sem ter sido corrigido há tanto tempo. Parece o tipo de coisa que você implementa uma vez e esquece; se isso existe há anos e só não foi percebido, então parece que também houve falha na garantia de qualidade do código dos códigos de erro

    • Por isso, quando escrevo ou reviso código que lida com exceções e caminhos de erro, olho com ainda mais rigor e cuidado
      Acho que ele deveria ser mais simples que o código do caminho normal, absurdamente fácil de entender e com baixo acoplamento. Sem herança nem abstrações, e com uma árvore de dependências rasa
      Já vi sistemas caírem vezes demais por causa de bugs no tratamento de exceções. Caminhos de exceção muitas vezes quase não são testados ou acabam ficando de fora, e exceções, por definição, tendem a surgir em lugares inesperados
    • Isso entrega minha idade, mas alguns builds do OS/2 que eu usava antigamente às vezes mostravam “esta mensagem de erro foi deletada”
    • Um bug de que cuidei há cerca de 1 ano acabou sendo causado por uma exceção no código de logging
      O código de logging só lançava outra exceção justamente no caso em que estava registrando a exceção lançada pelo código de tratamento de exceções. Como era uma ferramenta interna, eu me divertia escrevendo propositalmente entradas de changelog o mais confusas possível
    • Minha mensagem favorita era, em letras pequenas, “Something Happened”, e depois de novo “Something Happened”
  • Segui as instruções e também entendo que isso pode parecer bem pesado para alguns usuários
    Em vez da linha de comando, usei o Gerenciamento de Disco do Windows para reduzir a partição e criar o espaço necessário
    Surpreende não haver um script para esse processo, o que parece indicar como ele é complexo e sujeito a erros. Então acho que o motivo de não existir um script resolvido com duplo clique é justamente porque a tarefa em si é complicada
    Também é difícil ser otimista sobre uma correção rápida do Windows Update, como muita gente esperava, mas imagino que em breve desenvolvedores terceirizados lancem scripts ou programas para automatizar esse processo

  • Tem uma parte falando em “uma vulnerabilidade que permite a um invasor contornar a criptografia do BitLocker usando o Windows Recovery Environment (WinRE)”, e isso sempre me pareceu estranho, porque há muito tempo o ambiente de recuperação aparentemente permite acessar a unidade do sistema descriptografada automaticamente com privilégios de SYSTEM
    Isso já acontece há anos e também podia ser usado para extrair o conteúdo de máquinas cuja senha de login foi perdida. Provavelmente não era o comportamento originalmente pretendido

    • Isso só vale se você não usa TPM PIN ou se o TPM é anterior ao 2.0
      No modo TPM do BitLocker com PIN, não há como saber a chave do disco rígido sem perguntar ao TPM, e o TPM exige o PIN. Ele também já tem proteção contra força bruta e bloqueio embutidas
    • Pelo que lembro, o WinRE não pede a senha do administrador local antes das operações de recuperação?
      Então “desbloqueio automático” normalmente é um recurso com um grande asterisco, e esse é um dos motivos para recomendarem PIN, senha ou desbloqueio pela rede quando possível. Só que isso tem a desvantagem de você precisar cuidar do notebook durante as atualizações e desbloqueá-lo a cada reinicialização
  • A Microsoft não poderia recriar um departamento de garantia de qualidade de verdade em vez de deixar isso nas mãos de Insiders não remunerados? Parece que depende de pessoas que beberam o Flavor-Aid e acreditam que a Microsoft não tem como escrever código errado

    • Vendo a comunidade de feedback, não parece correto enxergar todos os Insiders dessa forma
      Ainda assim, já faz quase 10 anos que acabaram com o departamento tradicional de garantia de qualidade, e ele fazia mais do que só aproveitar validação de usuários externos. Sinceramente, é difícil dizer que o Windows quebra com mais frequência do que nos 10 anos anteriores, mas eu gostaria de ver números reais sobre incidentes causados por problemas com patches em coisas como sistemas médicos ao longo dos últimos 20 anos
  • Mesmo que a correção assuste, ainda assim agradeço por terem pelo menos disponibilizado alguma coisa
    Alguns anos atrás, quando uma atualização quebrou os arrays ReFS de um número considerável de pessoas, não recebemos solução além de rollback, e no fim a atualização virou obrigatória, impossibilitando a remoção, então foi preciso recriar os arrays do zero

    • É verdade que entregaram alguma coisa, mas ainda assim é um baita desastre
      Não é caso de agradecer por jogarem restos para você em um produto pago. Desculpe se soou diferente do que eu queria dizer
      A Microsoft precisa ser responsabilizada por quebrar a instalação e lançar uma correção pela metade. Mesmo sendo um problema complexo, trata-se da líder do mercado de sistemas operacionais para desktop e de uma empresa que ganha fortunas com isso, então deveria fazer melhor
  • O problema é que a partição de recuperação não existe ou não é grande o suficiente
    Na minha máquina virtual com Win10, eu não precisava da partição de recuperação, então a apaguei depois da instalação, e agora aquela instalação não pode mais ser atualizada

    • Segui as instruções para desativar a partição de recuperação e acho que nem tinha alocado espaço para ela desde o início
      Depois de reiniciar, consegui atualizar para o Windows 11 e espero não ter criado um problema maior para mais tarde. Eu realmente não queria mexer no redimensionamento da partição do sistema, que era o próximo passo sugerido
      Pode variar de caso para caso, mas é engraçado esse bug que encontrei por acaso ter ido parar na primeira página do Hacker News
  • Existe um ditado: “uso Windows porque não quero ir para a linha de comando só para corrigir um probleminha simples”; pelo visto, eu já fazia parte desse clube
    Alguns anos atrás, o Windows de repente decidiu que eu não tinha permissão de acesso ao meu diretório de usuário, e o sistema ficou todo quebrado, com o Explorer e a barra de tarefas funcionando de forma estranha
    Para consertar, tive de abrir um console de administrador, criar um novo usuário, mover os arquivos da conta antiga para a nova e depois mudar propriedade e permissões. Então essa ideia de que o Windows é fácil por ser gráfico é pura bobagem
    Se no fim eu vou cair em algum modo de falha esquisito e ter de digitar comandos para remediar, então prefiro continuar usando Linux e NetBSD

  • Como ex-desenvolvedor de Windows, lembro de ter ficado muito irritado por causa dos upgrades do Windows
    Já não dava mais para gravar de forma confiável na pasta de instalação, aí mandaram escrever no registro e depois dividir entre a pasta de dados e outros lugares. Com isso, tive de quebrar a instalação em “dez partes” para gerenciar onde os dados ficavam, lidar com HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER etc. e depois solicitar elevação de privilégio para a instalação
    Também lembro vagamente de depurar um bug em que eu apagava arquivos da pasta de instalação e o Windows restaurava em segundo plano a versão antiga desses arquivos. c:\program files tinha sido virtualizado e já não funcionava mais como um diretório de verdade

    • O fato de não dar mais para gravar de forma confiável na pasta de instalação provavelmente foi uma mudança introduzida no Windows XP, e eu diria que foi uma boa mudança
      Deixar programas de usuário gravarem numa pasta cheia de executáveis é horrível do ponto de vista de segurança
  • Também dá para defender a ideia de que é melhor não instalar todas as atualizações assim que são lançadas

    • No macOS e no iOS eu costumo esperar um pouco, mas no Windows nunca consegui achar uma forma de dizer que não quero atualizações automáticas
      Especialmente porque é complicado atualizar no meio de um trabalho de computação que fica rodando a noite toda
    • A Microsoft mudou isso, ou o Windows 10 Home ainda força o usuário a instalar imediatamente as atualizações mais recentes?
    • Assim como o Google faz no Android e no Chrome OS, a Microsoft testa essas atualizações primeiro internamente?
  • Se o repórter tivesse usado Linux, saberia que ele mostra mensagens de erro muito melhores do que códigos de erro que parecem números aleatórios

    • Não foi literalmente um caso de mostrar uma mensagem de erro errada?
      Segundo a Microsoft, por causa de “um erro na rotina de tratamento de código de erro”, esse erro pode nem ser o erro correto
    • O que torna o Windows agradável de usar não são as mensagens de erro, e sim a solução com um clique
    • Código de saída 139, hmm
    • Verdade, mas às vezes a mensagem útil só pode ser encontrada no dmesg