Une vulnérabilité (CVE-2023-41913) a été identifiée dans strongSwan, un paquet VPN basé sur le protocole IPSec utilisé sur Linux, Android, FreeBSD et macOS, qui peut être exploitée pour exécuter du code à distance par un attaquant. Cette vulnérabilité est causée par une erreur dans le processus charon-tkm avec l'implémentation du protocole d'échange de clés (IKE) basée sur TKMv2 (Trusted Key Manager), entraînant un débordement de tampon lors du traitement de valeurs spécifiques du schéma DH (Diffie–Hellman). La vulnérabilité ne se manifeste que dans les systèmes utilisant charon-tkm et dans les versions de strongSwan à partir de 5.3.0. Le problème a été résolu dans la mise à jour strongSwan 5.9.12. Des patches ont également été préparés pour corriger la vulnérabilité dans les branches à partir de 5.3.x.
L'erreur est due à l'absence de vérification de la taille des valeurs publiques Diffie-Hellman avant leur copie dans un tampon de taille fixe sur la pile. Le débordement peut être déclenché en envoyant un message IKE_SA_INIT spécialement formé, traité sans authentification. Dans les anciennes versions de strongSwan, la vérification de la taille était effectuée dans le gestionnaire KE payload (Key Exchange), mais dans la version 5.3.0, des modifications ont été apportées, déplaçant la vérification des valeurs publiques du côté du gestionnaire du protocole DH (Diffie-Hellman) et ajoutant des fonctions standard pour faciliter la vérification de l'exactitude des groupes DH connus. Par inadvertance, les nouvelles fonctions de vérification ont été omises dans le processus charon-tkm, qui fonctionne comme un proxy entre le processus IKE et TKM (Trusted Key Manager), ce qui a abouti à des valeurs non vérifiées dans la fonction memcpy(), permettant d'écrire jusqu'à 10 000 octets de données dans un tampon de 512 octets.
Source : opennet.ru
