Capacidade de gerar assinaturas ECDSA falsas no Java SE. Vulnerabilidades no MySQL, VirtualBox e Solaris

A Oracle publicou um lançamento planejado de atualizações para seus produtos (Critical Patch Update), com o objetivo de eliminar problemas críticos e vulnerabilidades. A atualização de abril corrigiu um total de 520 vulnerabilidades.

Alguns problemas:

  • 6 Problemas de segurança em Java SE. Todas as vulnerabilidades podem ser exploradas remotamente sem autenticação e afetam ambientes que permitem a execução de códigos não confiáveis. Dois problemas receberam um nível de gravidade de 7.5. As vulnerabilidades foram resolvidas nas versões Java SE 18.0.1, 11.0.15 e 8u331.

    Um dos problemas (CVE-2022-21449) permite gerar uma assinatura digital ECDSA fictícia usando parâmetros de curva zero ao gerá-la (se os parâmetros forem zero, então a curva vai para o infinito, então valores zero são explicitamente proibidos em a especificação). As bibliotecas Java não verificavam valores nulos dos parâmetros ECDSA, portanto, ao processar assinaturas com parâmetros nulos, o Java os considerava válidos em todos os casos).

    Entre outras coisas, a vulnerabilidade pode ser usada para gerar certificados TLS fictícios que serão aceitos em Java como corretos, bem como para contornar a autenticação via WebAuthn e gerar assinaturas JWT e tokens OIDC fictícios. Em outras palavras, a vulnerabilidade permite gerar certificados e assinaturas universais que serão aceitos e percebidos como corretos em manipuladores Java que usam classes java.security.* padrão para verificação. O problema aparece nas ramificações Java 15, 16, 17 e 18. Um exemplo de geração de certificados falsos está disponível. jshell> importar java.security.* jshell> var keys = KeyPairGenerator.getInstance("EC").generateKeyPair() chaves ==> java.security.KeyPair@626b2d4a jshell> var blankSignature = new byte[64] blankSignature ==> byte[64] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…, 0, 0, 0, 0, 0, 0, 0, 0 } jshell > var sig = Signature.getInstance("SHA256WithECDSAInP1363Format") sig ==> Objeto de assinatura: SHA256WithECDSAInP1363Format jshell> sig.initVerify(keys.getPublic()) jshell> sig.update("Olá, Mundo".getBytes()) jshell> sig.verify(blankSignature) $8 ==> true

  • 26 vulnerabilidades no servidor MySQL, duas das quais podem ser exploradas remotamente. Os problemas mais sérios associados ao uso de OpenSSL e protobuf recebem um nível de severidade de 7.5. Vulnerabilidades menos graves afetam o otimizador, InnoDB, replicação, plugin PAM, DDL, DML, FTS e registro. Os problemas foram resolvidos nas versões 8.0.29 e 5.7.38 do MySQL Community Server.
  • 5 vulnerabilidades no VirtualBox. Os problemas recebem um nível de gravidade de 7.5 a 3.8 (a vulnerabilidade mais perigosa aparece apenas na plataforma Windows). As vulnerabilidades foram corrigidas na atualização do VirtualBox 6.1.34.
  • 6 vulnerabilidades no Solaris. Os problemas afetam o kernel e os utilitários. O problema mais sério nas concessionárias recebe um nível de perigo de 8.2. As vulnerabilidades foram resolvidas na atualização do Solaris 11.4 SRU44.

Fonte: opennet.ru

Adicionar um comentário