No strongSwan, pacote VPN baseado no protocolo IPSec, utilizado em Linux, Android, FreeBSD e macOS, foi identificada uma vulnerabilidade (CVE-2023-41913) que pode ser explorada para a execução remota de código por atacantes. A vulnerabilidade é causada por um erro no processo charon-tkm na implementação do protocolo de troca de chaves (IKE) baseado em TKMv2 (Trusted Key Manager), resultando em um estouro de buffer ao processar valores manipulados do esquema DH (Diffie–Hellman). A vulnerabilidade se manifesta apenas em sistemas que usam charon-tkm e nas versões do strongSwan a partir da 5.3.0. O problema foi corrigido na atualização do strongSwan 5.9.12. Para corrigir a vulnerabilidade nas versões a partir da 5.3.x, também foram preparados patches.
O erro é causado pela falta de verificação do tamanho dos valores públicos do Diffie-Hellman antes de copiá-los para um buffer de tamanho fixo na pilha. O estouro pode ser iniciado através do envio de uma mensagem IKE_SA_INIT manipulada, processada sem autenticação. Nas versões antigas do strongSwan, a verificação de tamanho era realizada no manipulador do KE payload (Key Exchange), mas na versão 5.3.0 foram feitas mudanças que transferiram a verificação dos valores públicos para o manipulador do protocolo DH (Diffie-Hellman) e adicionaram funções padrão para simplificar a verificação da validade dos grupos DH conhecidos. Por descuido, as novas funções de verificação foram esquecidas no processo charon-tkm, que opera como um proxy entre o processo IKE e o TKM (Trusted Key Manager), resultando em valores não verificados na função memcpy(), permitindo escrever até 10.000 bytes de dados em um buffer de 512 bytes.
Fonte: opennet.ru
