Vulnerabilidade no IPsec do StrongSwan levando à execução remota de código

O strongSwan, um pacote VPN baseado em IPSec usado em Linux, Android, FreeBSD e macOS, possui uma vulnerabilidade (CVE-2023-41913) que pode ser explorada para execução remota de código por um invasor. A vulnerabilidade se deve a um bug no processo charon-tkm com sua implementação TKMv2 (Trusted Key Manager) do protocolo Key Exchange (IKE), resultando em um buffer overflow ao processar valores de esquema DH (Diffie – Hellman) especialmente formatados. A vulnerabilidade só aparece em sistemas que usam versões charon-tkm e strongSwan a partir de 5.3.0. O problema foi corrigido na atualização do StrongSwan 5.9.12. Para corrigir a vulnerabilidade em ramificações a partir de 5.3.x, patches também foram preparados.

O erro é causado pela não verificação do tamanho dos valores públicos Diffie-Hellman antes de copiá-los para um buffer de tamanho fixo na pilha. Um overflow pode ser iniciado enviando uma mensagem IKE_SA_INIT especialmente criada que é processada sem autenticação. Nas versões mais antigas do StrongSwan, a verificação de tamanho era realizada no manipulador de carga útil KE (Key Exchange), mas na versão 5.3.0 foram adicionadas alterações que moveram a verificação de valores públicos para o lado do manipulador de protocolo DH ( Diffie-Hellman) e adicionou funções genéricas para simplificar a verificação da exatidão dos grupos conhecidos D.H. Devido a um descuido, eles se esqueceram de adicionar novas funções de verificação ao processo charon-tkm, que funciona como um proxy entre o processo IKE e o TKM (Trusted Key Manager), como resultado a função memcpy() continha valores não verificados ​​que permitiu que até 512 bytes fossem gravados em um buffer de dados de 10000 bytes.

Fonte: opennet.ru

Adicionar um comentário