
SpookySSL CVE-2022-3602 Scanner SSLv3 para Windows, Linux, macOS
SpookySSL CVE-2022-3602 SSLv3 Scanner para Windows, Linux, macOS
Primeiramente, o problema ocorre ao determinar o tamanho do byte. Ao determinar o tamanho do byte, se você notar, o valor NULL, ou seja, vazio/zero, não é definido, então o comprimento do byte pode ser determinado como zero. No comando abaixo, a parte que começa com xn-- significa a conversão direta de nomes de domínio escritos em alfabetos diferentes (por exemplo, convertidos de chinês para punycode) para o alfabeto latino. No loop If, o comando memcpy aloca uma área de stack de valor delta + 1 na memória e escreve o valor outptr nessa área. Quando o valor NULL é inserido, como apenas 1 byte é alocado, dois códigos de espaço criam um buffer overflow.
Para informações detalhadas : https://github.com/openssl/openssl/commit/c42165b5706e42f67ef8ef4c351a9a4c5d21639a
Primeiramente, devemos saber o que é execução remota de código (RCE)
Ataques de execução remota de código (RCE) permitem que um atacante execute código malicioso remotamente em um computador. O impacto de uma vulnerabilidade de RCE pode variar de execução de malware a um atacante ganhando controle total sobre uma máquina comprometida.
A vulnerabilidade CVE-2022-3602 no OpenSSL ocorre devido ao processamento incorreto do Punycode ao verificar certificados X.509.
Punycode é uma representação de strings Unicode usando o subconjunto limitado de caracteres ASCII. Geralmente é usado para codificar nomes de domínio contendo caracteres não ASCII, por exemplo, letras japonesas. Uma string codificada em punycode
começa com “xn--” e é seguida por caracteres ingleses e dígitos.
A função vulnerável ossl_punycode_decode pode causar buffer overflow durante a decodificação da string Punycode. Ela é chamada quando o OpenSSL processa uma cadeia de certificados. Para explorar a vulnerabilidade, é necessário:
1) Criar um certificado de AC (autoridade certificadora) ou um certificado intermediário que contenha o campo “nameConstraints” com uma string Punycode maliciosa. A string Punycode deve conter pelo menos 512 bytes, excluindo “xn--”.
2) Criar um certificado folha que contenha um campo otherName de SubjectAlternateName (SAN) que especifique uma string SmtpUTF8Mailbox
Vulnerabilidade de Negação de Serviço (DoS)
Um ataque de negação de serviço (DoS) é um ataque que visa desligar uma máquina ou rede, tornando-a inacessível para seus usuários legítimos. Os ataques de DoS conseguem isso inundando o alvo com tráfego ou enviando informações que provocam uma falha.
A vulnerabilidade CVE-2022-3602 também possui vulnerabilidade de negação de serviço, como outras vulnerabilidades de buffer overflow. O buffer overflow ocorre na função vulnerável ossl_a2ulabel. Quando essa função encontra uma parte Punycode seguida por um caractere de ponto (“.”), ela também acrescenta “.” ao buffer de saída, mesmo que isso exceda seu tamanho.
Dessa forma, um atacante pode fazer o buffer de saída transbordar com qualquer número de caracteres “.”, o que leva à corrupção da pilha. Essa vulnerabilidade não pode ser usada para execução remota de código, apenas para negação de serviço.
Fonte : https://blog.checkpoint.com/2022/11/01/openssl-vulnerability-cve-2022-3602-remote-code-execution-and-cve-2022-3786-denial-of-service-check-point-research-update/
